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

MongoDB में क्वेरी के समान सटीक ऐरे एंट्रीज़ वाले डॉक्यूमेंट्स कैसे खोजें?

MongoDB में $all ऑपरेटर का उपयोग करके सटीक ऐरे सामग्री मिलान करना

$all ऑपरेटर उन डॉक्यूमेंट्स को चुनता है जहां एक ऐरे फील्ड में सभी निर्दिष्ट मान होते हैं, क्रम या अन्य तत्वों की परवाह किए बिना। यह सटीक सबसेट मिलान के लिए उपयोगी है।

नमूना डेटा बनाना

> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["C++","Java","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69a5f57806ebf1256f12e") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["MySQL","Java","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69ac057806ebf1256f12f") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["C#","Python","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69ad457806ebf1256f130") }
> db.findDocumentExactlySameInArrayDemo.insertOne({"TechnicalSubjects":["MySQL","C","MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd69adf57806ebf1256f131") }

सभी डॉक्यूमेंट्स देखना

> db.findDocumentExactlySameInArrayDemo.find().pretty();

आउटपुट:

{ "_id" : ObjectId("5cd69a5f57806ebf1256f12e"), "TechnicalSubjects" : [ "C++", "Java", "MongoDB" ] }
{ "_id" : ObjectId("5cd69ac057806ebf1256f12f"), "TechnicalSubjects" : [ "MySQL", "Java", "MongoDB" ] }
{ "_id" : ObjectId("5cd69ad457806ebf1256f130"), "TechnicalSubjects" : [ "C#", "Python", "MongoDB" ] }
{ "_id" : ObjectId("5cd69adf57806ebf1256f131"), "TechnicalSubjects" : [ "MySQL", "C", "MongoDB" ] }

सटीक ऐरे मिलान के लिए क्वेरी करना

उन डॉक्यूमेंट्स को खोजें जहां TechnicalSubjects में सभी तीन "MySQL", "Java", "MongoDB" हैं:

> db.findDocumentExactlySameInArrayDemo.find({
  "TechnicalSubjects": { "$all": ["MySQL","Java","MongoDB"] }
});

आउटपुट:

{ "_id" : ObjectId("5cd69ac057806ebf1256f12f"), "TechnicalSubjects" : [ "MySQL", "Java", "MongoDB" ] }

महत्वपूर्ण अंतर

ऑपरेटरव्यवहारउदाहरण मिलान
$all: [A, B]ऐरे में A और B दोनों होने चाहिए (कोई भी क्रम, अन्य तत्व ठीक हैं)[A, B, C], [B, A], [X, A, Y, B]
{ arr: [A, B] } (सटीक मिलान)ऐरे सटीक रूप से [A, B] होना चाहिए (समान क्रम, समान लंबाई)केवल [A, B]
$in: [A, B]ऐरे में A या B (या दोनों) होना चाहिए[A], [B], [A, B], [A, C]

मुख्य बिंदु

  • $all सबसेट मिलान के लिए है, सटीक ऐरे समानता के लिए नहीं।
  • सटीक ऐरे समानता (क्रम + लंबाई) के लिए, क्वेरी दस्तावेज़ का उपयोग करें: { TechnicalSubjects: ["MySQL","Java","MongoDB"] }।
  • $all के साथ $elemMatch का उपयोग करें जब ऐरे तत्व ऑब्जेक्ट्स हों।
  1. - MongoDB में सरणी के भीतर मिलान ऑब्जेक्ट्स की संख्या के आधार पर डॉक्यूमेंट्स कैसे ढूंढें?

    आइए एक उदाहरण देखते हैं और डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo694.insertOne( ... { details : [ { Name : Chris, Age:21 }, { Name : David, Age:22 } ] } ); { acknowledged : true, insertedId : ObjectId(5ea59279ece4e5779399c07f) } > db.demo694.insertOne( ... { details : [ { Name :

  1. - MongoDB Query - Specific FirstName और LastName वाले Documents Find करना

    Specific FirstName और LastName वाले documents find करने के लिए $and के साथ $in का उपयोग करें। MongoDB find() में implement करें। Collection बनाना > db.demo692.insertOne({FirstName:Chris,LastName:Brown}); { acknowledged : true, insertedId : ObjectId(5ea585dca7e81adc6a0b396a) } > db.demo692.ins

  1. - MongoDB में एक क्वेरी से कई डॉक्यूमेंट्स कैसे अपडेट करें?

    एक क्वेरी से कई डॉक्यूमेंट्स अपडेट करने के लिए MongoDB में bulkWrite() का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo760.insertOne({id:1,details:{Value1:100,Value2:50}}); { acknowledged : true, insertedId : ObjectId(5eb0309f5637cd592b2a4aee) } > db.demo760.insertOne({id:2,details:{Value1: