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

नेवला अद्यतन उप दस्तावेज़ यदि मौजूद है

तो आप वहां के रास्ते का हिस्सा हैं, लेकिन निश्चित रूप से जब आपको कोई doc नहीं मिलता है तो आपके पास doc नहीं होगा कॉलबैक में साथ काम करने के लिए। MongoDB के पास इस प्रकार के अपडेट को संभालने के मूल तरीके हैं, लेकिन निश्चित रूप से आपको मैच के लिए परीक्षण करने की आवश्यकता है जैसे आप हैं।

हम यहां क्या कर सकते हैं true . के भीतर ही काम करते हैं या false दस्तावेज़ मौजूद होने की स्थिति।

vote.value को ध्यान में रखते हुए अपने true होने के लिए या false "अपवोट" के लिए

जहां आप पाते हैं कि एक मेल खाने वाला दस्तावेज़ है, आप इस तरह से एक अपडेट जारी कर सकते हैं:

Question.update(
  { 
    _id: questionId, 
    "votes.createdBy" vote.createdBy,
    "votes.up": {"$ne": vote.value }
  },
  { $set: { "votes.$.up": vote.value } }
);

ताकि एक positional से मेल खाता हो और उसका उपयोग करता हो $ सही इंडेक्स . सुनिश्चित करने के लिए ऑपरेटर मिलान करने वाले आइटम का अद्यतन किया जाता है। मैंने वहां जो जोड़ा है वह यह सुनिश्चित करता है कि आप उस दस्तावेज़ को स्पर्श भी न करें जहां vote.vaule पहले से ही समान मूल्य का है।

और झूठी स्थिति में आप $push करना चाहते हैं नए . के साथ सरणी पर आइटम:

Question.update(
  { 
    _id: questionId
  },
  { 
    $push: { 
      "votes": {
        "up": vote.value,
        "createdBy": vote.createdBy
      }
    }
  }
);

बेशक कॉलबैक विवरण जोड़ें जहां writeConcern लागू होता है, जो आप शायद करते हैं।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB का उपयोग करते समय सम्मेलन द्वारा BsonRepresentation विशेषता कैसे लागू करें

  2. Nodejs + Mongo db उपयोगकर्ता नाम और पासवर्ड के साथ सर्वर डेटाबेस से जुड़ते हैं

  3. MongoDB.Driver को 2.7.0 से 2.7.1 . में अपग्रेड करने के बाद कनेक्शन का समय समाप्त

  4. mongodb गैर-सरणी में $pull/$pullAll संशोधक लागू नहीं कर सकता, सरणी तत्व को कैसे हटाएं

  5. MongoDB के डेटा फ़ोल्डर को स्थानांतरित करना?