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

MongoDB में विशिष्ट एम्बेडेड दस्तावेज़ कैसे लौटाएं?

MongoDB में विशिष्ट एम्बेडेड दस्तावेज़ के लिए $unwind का दो बार उपयोग करें।

नमूना डेटा बनाना (नेस्टेड ऐरे)

> db.demo631.insert( {
  id: "101",
  Info1: [
    { CountryName: "US", Info2: [ { Name:"Chris", Age:24 }, { Name:"Bob", Age:22 } ] }
  ]
} );

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

> db.demo631.find();
{ "id" : "101", "Info1" : [ { "CountryName" : "US", "Info2" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Bob", "Age" : 22 } ] } ] }

विशिष्ट एम्बेडेड दस्तावेज़ प्राप्त करने की क्वेरी (Age 22 वाला)

> db.demo631.aggregate([
  { "$unwind": "$Info1" },
  { "$unwind": "$Info1.Info2" },
  { "$match": { "Info1.Info2.Age": 22 } }
])

परिणाम:

{ "id" : "101", "Info1" : { "CountryName" : "US", "Info2" : { "Name" : "Bob", "Age" : 22 } } }

व्याख्या: पहला $unwind Info1 ऐरे को फ्लैट करता है, दूसरा $unwind नेस्टेड Info2 ऐरे को फ्लैट करता है। फिर $match Age 22 वाले दस्तावेज़ को फ़िल्टर करता है।

  1. - MongoDB में विशिष्ट स्ट्रिंग वाले दस्तावेज खोजें

    कौन सा दस्तावेज विशिष्ट स्ट्रिंग रखता है, यह खोजने के लिए find() के साथ $regex का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo597.insertOne({Name:John Doe}); { acknowledged : true, insertedId : ObjectId(5e947ae3f5f1e70e134e2690) } > db.demo597.insertOne({Name:John Smith})

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,

  1. - MongoDB डॉक्यूमेंट से विशिष्ट मान फ़िल्टर करें

    विशिष्ट मान फ़िल्टर करने के लिए MongoDB में $filter का उपयोग करें। आइए एक कलेक्शन बनाते हैं: > db.demo751.insertOne( { _id: 101, details: [ { Name: Robert, id:110,Age:21}, { Name: Rae, id:110,Age:22}, {Name: Ralph, id:116,Age:23} ] } ); { acknowledged : true, insertedId : 101 } find() से सभी डॉक