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

केवल सरणी में अद्वितीय जोड़ें और अद्यतन पर फ़ील्ड गणना रखें

इस प्रकार के संचालन के लिए आपको $addToSet बेशक $inc इस पर ध्यान दिए बिना होगा कि सरणी में कुछ भी जोड़ा गया था ("सेट") या नहीं।

इसके बजाय, $ne से सरणियों का परीक्षण करें क्वेरी में ऑपरेटर:

db.collection.update(
    { "unique_array": { "$ne": 18 } },    <-- existing element
    { 
        "$push": { "unique_array": 18 },
        "$inc": { "size_of_array": 1 }
    }
)

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

db.collection.update(
    { "unique_array": 18 },    <-- existing element
    { 
        "$pull": { "unique_array": 18 },
        "$inc": { "size_of_array": -1 }
    }
)

चूंकि क्वेरी की स्थिति का मिलान होना चाहिए, यदि जोड़ते समय सरणी तत्व पहले से मौजूद था तो कोई मेल नहीं है और $पुश या $inc ऑपरेशन चलाए जा रहे हैं। और $pull के लिए भी यही सच है मामला जहां तत्व सरणी में मौजूद नहीं है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - एक सरणी में दस्तावेज़ अपडेट करें

  2. सरणी में मैचों की संख्या द्वारा मोंगो क्रमबद्ध करें

  3. मोंगो, आईडी की सूची के माध्यम से खोजें

  4. क्लाउड के लिए मोंगोडीबी से उपलब्ध एकीकरण और सेवाएं

  5. नेवला में पूरे ऐप में डीबी कनेक्शन साझा करना