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

MongoDB में फाइंड क्वेरी से सरणी मान कैसे प्राप्त करें?

MongoDB में सरणी फील्ड के अंदर नेस्टेड फील्ड के आधार पर दस्तावेज़ क्वेरी करने और सरणी लौटाने के लिए, डॉट नोटेशन का उपयोग करें: { "arrayField.nestedField": value }।

उदाहरण: क्लाइंट विवरण संग्रह

> db.demo38.insertOne({"ClientDetails":[{"ClientId":101,"ClientName":"Chris"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176abccfb11e5c34d898d9") }
> db.demo38.insertOne({"ClientDetails":[{"ClientId":102,"ClientName":"David"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176ac7cfb11e5c34d898da") }
> db.demo38.insertOne({"ClientDetails":[{"ClientId":103,"ClientName":"Mike"}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e176ad0cfb11e5c34d898db") }

दस्तावेज़ देखना

> db.demo38.find();

आउटपुट: प्रत्येक में एक-तत्व सरणी वाले तीन दस्तावेज़।

सरणी फील्ड द्वारा क्वेरी

> db.demo38.find({"ClientDetails.ClientName":"David"});

आउटपुट:

{ "_id" : ObjectId("5e176ac7cfb11e5c34d898da"), "ClientDetails" : [ { "ClientId" : 102, "ClientName" : "David" } ] }

व्याख्या

  • ClientDetails.ClientName प्रत्येक दस्तावेज़ में ClientDetails सरणी के अंदर ClientName फील्ड तक पहुंचता है।
  • MongoDB सरणी में किसी भी तत्व से मेल खाता है।
  • पूरा दस्तावेज़ लौटाया जाता है (पूरी सरणी सहित)।

केवल मिलान वाला तत्व प्रोजेक्ट करें ($elemMatch प्रोजेक्शन)

> db.demo38.find(
    { "ClientDetails.ClientName": "David" },
    { "ClientDetails": { $elemMatch: { "ClientName": "David" } } }
);

केवल मिलान वाला सरणी तत्व लौटाता है।

एग्रीगेशन विकल्प ($unwind + $match)

> db.demo38.aggregate([
    { $unwind: "$ClientDetails" },
    { $match: { "ClientDetails.ClientName": "David" } },
    { $replaceRoot: { newRoot: "$ClientDetails" } }
]);

मिलान वाला ऑब्जेक्ट सीधे लौटाता है (दस्तावेज़ रैपर के बिना)।

  1. - MongoDB में ऑब्जेक्ट ऐरे से विशिष्ट मान कैसे प्राप्त करें?

    MongoDB में ऑब्जेक्ट ऐरे से विशिष्ट मान प्राप्त करने के लिए distinct() मेथड का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo442.insertOne( ...    { ... ...       "Information" : [ ...          { ...      

  1. - MongoDB में मानों की सरणी दिए जाने पर मिलते-जुलते दस्तावेज़ कैसे खोजें?

    विशिष्ट दस्तावेज़ों के लिए, MongoDB $in ऑपरेटर का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo511.insertOne({ListOfProject:[Library Management System,Hospital Management System]}); { acknowledged : true, insertedId : ObjectId(5e88473a987b6e0e9d18f585) } > db.demo511.insertOne(

  1. - MongoDB क्वेरी: कलेक्शन से पूरा ऐरे हटाएं

    कलेक्शन से पूरा ऐरे हटाने के लिए, MongoDB में $unset का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo609.insertOne({ListOfSubject:[MySQL,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5e974695f57d0dc0b182d62c) } > db.demo609.insertOne({ListOfSubject:[Java]}); { a