MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब में वस्तु की सरणी की सरणी में कैसे खोजें?

मान लें कि आप awaiting . को खोजना चाहते हैं संग्रह के लिए स्थिति users

db.users.find({"version.files.status":"awaiting"}).pretty()

यह स्वचालित रूप से सरणियों के भीतर खोज करेगा।

हालांकि, अपडेट करना थोड़ा अलग है और आपको arrayFilter<का उपयोग करना चाहिए। /ए> :

db.users.updateOne(
  {
    "version.files._id": "606592b3c5d509071857f6e8",
  },
  {
    $set: {
      "version.$[version].files.$[file].url": "something else",
    },
  },
  {
    arrayFilters: [
      { "version._id": "606592b1c5d509071857f6e7" },
      { "file._id": "606592b3c5d509071857f6e8" },
    ],
  }
);

सुनिश्चित करें कि आपके find . पर एक अनुक्रमणिका है क्वेरी:

उपरोक्त उदाहरण के लिए

db.users.createIndex({"version.files._id":1},{background:true})

कई और उदाहरण Mongo Doc पर उपलब्ध हैं

संपादित करें

आपकी टिप्पणी के अनुसार, यहाँ एक कार्यशील उदाहरण है:

db.users.findOneAndUpdate(
  { "version.files._id": "606592b3c5d509071857f6e8" },
  {
    $set: {
      "version.$[version].files.$[file].url": "Test URL",
      "version.$[version].files.$[file].status": "Test status",
    },
  },
  {
    returnNewDocument: true,
    arrayFilters: [
      { "version._id": "606592b1c5d509071857f6e7" },
      { "file._id": "606592b3c5d509071857f6e8" },
    ],
  }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जावास्क्रिप्ट का उपयोग करके ग्रीक वर्णों के साथ MongoDB में निष्पादन क्वेरी कोई परिणाम नहीं देता है

  2. आधिकारिक सी # ड्राइवर का उपयोग कर MongoDB एकत्रीकरण?

  3. Golang GraphQL MongoDB डेटाबेस से दिनांक और आईडी प्राप्त करने के लिए संघर्ष कर रहा है

  4. MongoDB में डेटा वर्जनिंग को लागू करने के तरीके

  5. उल्का, एक से कई संबंध और प्रकाशित में केवल क्लाइंट साइड संग्रह में फ़ील्ड जोड़ें?