Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में फील्ड में स्ट्रिंग या नंबर कैसे खोजें?

MongoDB में फील्ड में स्ट्रिंग या नंबर (दोनों प्रकार) के मान खोजने के लिए $in ऑपरेटर में दोनों मान प्रकार शामिल करें।

उदाहरण

एक ही मान स्ट्रिंग और नंबर दोनों रूपों में वाले दस्तावेज़ बनाएं:

> db.searchForStringOrNumberDemo.insertOne(
  {
    "_id": new ObjectId(),
    "StudentName": "Larry",
    "StudentDetails": {
      "StudentMarks": {
        "StudentMongoDBMarks": [44]
      }
    }
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5ce2407c36e8b255a5eee944") }

> db.searchForStringOrNumberDemo.insertOne(
  {
    "_id": new ObjectId(),
    "StudentName": "Larry",
    "StudentDetails": {
      "StudentMarks": {
        "StudentMongoDBMarks": ["44"]
      }
    }
  }
);
{ "acknowledged" : true, "insertedId" : ObjectId("5ce240f036e8b255a5eee945") }

दस्तावेज़ देखें:

> db.searchForStringOrNumberDemo.find().pretty();
{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }

स्ट्रिंग "44" या नंबर 44 दोनों खोजें

> db.searchForStringOrNumberDemo.find({
  "StudentDetails.StudentMarks.StudentMongoDBMarks": {
    "$in": ["44", 44]
  }
});

आउटपुट:

{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }

व्याख्या:

  • $in सरणी में किसी भी मान से मेल खाता है
  • ["44", 44] में स्ट्रिंग और नंबर दोनों शामिल हैं
  • MongoDB सख्त प्रकार जांच करता है, इसलिए दोनों निर्दिष्ट करना आवश्यक है
  • डॉट नोटेशन नेस्टेड सरणी फील्ड तक पहुंचता है

सरणी फील्ड में $in व्यवहार

जब फील्ड सरणी हो, $in जांचता है कि क्या सरणी का कोई भी तत्व दी गई सूची में है।

विकल्प: $or ऑपरेटर

db.collection.find({
  $or: [
    {"field": 44},
    {"field": "44"}
  ]
})

यह समान परिणाम देता है लेकिन अधिक वर्बोज़ है।

बेस्ट प्रैक्टिस: डेटा डालते समय डेटा प्रकार सुसंगत रखें (हमेशा नंबर या हमेशा स्ट्रिंग) ताकि ऐसी क्वेरी की आवश्यकता न पड़े।

  1. - JavaScript RegExp से स्ट्रिंग में टेक्स्ट कैसे खोजें जो RegExp से मेल खाता हो?

    किसी स्ट्रिंग में उस टेक्स्ट को खोजने के लिए जो RegExp से मेल खाता हो, JavaScript में exec() मेथड उपयोग करें। यदि यह मिलान पाता है, तो यह परिणामों का एक सरणी लौटाता है; अन्यथा, यह null लौटाता है। पैरामीटर निम्न है: string - खोजी जाने वाली स्ट्रिंग। उदाहरण RegExp से मेल खाने वाले टेक्स्ट के लिए स्

  1. जावास्क्रिप्ट में स्ट्रिंग कैसे खोजें? जावास्क्रिप्ट में स्ट्रिंग कैसे खोजें?

    परिचय जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए search() मेथड का उपयोग किया जाता है जो रेगुलर एक्सप्रेशन (या स्ट्रिंग जो रेगएक्सप में परिवर्तित हो जाती है) लेता है और पहले मिलान का इंडेक्स लौटाता है, या -1 यदि नहीं मिला। उदाहरण निम्न कोड जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए है: <!DOCTYPE html

  1. - MySQL में कॉलम में सटीक स्ट्रिंग कैसे खोजें

    BINARY LIKE के साथ केस-सेंसिटिव सटीक स्ट्रिंग खोज केस-सेंसिटिव तरीके से सटीक स्ट्रिंग खोजने के लिए BINARY ऑपरेटर के साथ LIKE और वाइल्डकार्ड % का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName WHERE BINARY yourColumnName LIKE %yourStringValue%; टेबल और डेटा CREATE TABLE DemoTable( Name VARC