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

नेवला वस्तुओं के नेस्टेड सरणी में अद्वितीय मान

किसी सरणी फ़ील्ड पर एक अद्वितीय अनुक्रमणिका लागू करती है कि एक ही मान एक से अधिक दस्तावेज़ की सरणियों में प्रकट नहीं हो सकता है संग्रह में, लेकिन एक ही दस्तावेज़ की सरणी में एक ही मान को एक से अधिक बार प्रदर्शित होने से नहीं रोकता है। इसलिए जब आप इसके बजाय सरणी में तत्व जोड़ते हैं तो आपको विशिष्टता सुनिश्चित करने की आवश्यकता होती है।

$addToSet . का उपयोग करें ऑपरेटर किसी सरणी में मान जोड़ने के लिए केवल तभी मान सकता है जब मान पहले से मौजूद न हो।

Group.updateOne({name: 'admin'}, {$addToSet: {users: userOid}}, ...

हालांकि, अगर users सरणी में कई गुणों वाली वस्तुएं होती हैं और आप उनमें से केवल एक पर विशिष्टता सुनिश्चित करना चाहते हैं (uid इस मामले में), तो आपको एक और तरीका अपनाने की जरूरत है:

var user = { uid: userOid, ... };
Group.updateOne(
    {name: 'admin', 'users.uid': {$ne: user.uid}}, 
    {$push: {users: user}},
    function(err, numAffected) { ... });

वह क्या करता है $push . के योग्य है अपडेट केवल तभी होगा जब user.uid uid . में पहले से मौजूद नहीं है users . के किसी भी तत्व का क्षेत्र . तो यह $addToSet . की नकल करता है व्यवहार, लेकिन केवल uid . के लिए ।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. कुल गिनती प्राप्त करने के लिए मोंगोडीबी में कुल योग कैसे प्राप्त करें?

  2. सीमा का उपयोग करते समय MongoDB के साथ कुल दस्तावेज़ों की संख्या प्राप्त करें

  3. MongoDB नोड जाँचता है कि क्या ऑब्जेक्टिड मान्य है

  4. अत्याधुनिक डेटाबेस प्रबंधन:ClusterControl - The Guide

  5. विंडोज़ पर मोंगोडीबी स्थापित करें