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

नेवला अद्यतन 'तत्व को पार करने के लिए भाग (..) का उपयोग नहीं कर सकता

स्थितिगत $ का उपयोग करने का प्रयास करें ऑपरेटर अद्यतन में जो सरणी में तत्व की स्थिति को स्पष्ट रूप से निर्दिष्ट किए बिना अद्यतन करने के लिए एक सरणी में एक तत्व की पहचान करता है, लेकिन यह एक समय में केवल एक तत्व से मेल खाएगा:

 User.update(
    { 
        "local.email": user,
        "devices.id": { "$ne": deviceID },
        "devices.name": { "$ne": deviceName }
    }, 
    { 
        "$set": { 
            "devices.$.id": deviceID,
            "devices.$.name": deviceName 
        }
    } 
);

दस्तावेज़ों से , स्थितीय $ ऑपरेटर क्वेरी दस्तावेज़ से मेल खाने वाले पहले तत्व के लिए प्लेसहोल्डर के रूप में कार्य करता है, और सरणी फ़ील्ड को क्वेरी दस्तावेज़ के भाग के रूप में प्रकट होना चाहिए, इसलिए क्वेरी दस्तावेज़

"devices.id": { "$ne": deviceID },
"devices.name": { "$ne": deviceName }

इसमें device शामिल है सरणी और उन दस्तावेज़ों से मेल खाएगा जहाँ device सरणी id deviceID . के बराबर नहीं है और नाम उस नाम के समान नहीं है जिसे आप अद्यतन करने का प्रयास कर रहे हैं। यह उन दस्तावेज़ों से भी मेल खाएगा जहाँ device सरणी खाली है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवला सूचकांक पहले से ही विभिन्न विकल्पों के साथ मौजूद है

  2. मोंगोडीबी टाइमस्टैम्प

  3. सी # - मोंगोडीबी - नेस्टेड दस्तावेज़ के अंदर एक तत्व अपडेट करें

  4. मोंगो डीबी अद्यतन क्वेरी प्रदर्शन

  5. MongoDB-3.2.7 . में एक ही क्वेरी में दोनों संग्रहों से आवश्यक दस्तावेज़ प्राप्त करना