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

MongoDb . के साथ कई रिकॉर्ड अप्सर्ट करें

यह - सही ढंग से - Event_id 1 या 2 के साथ कोई रिकॉर्ड नहीं डालेगा यदि वे पहले से मौजूद नहीं हैं

db.foo.update({event_id: { $in: [1,2]}}, {$inc: {visit:1}}, true, true)

ऐसा इसलिए है क्योंकि objNew क्वेरी का हिस्सा (देखें http://www.mongodb.org/display /DOCS/Updating#Updating-UpsertswithModifiers ) फ़ील्ड के लिए कोई मान नहीं है event_id . परिणामस्वरूप, आपको डेटाबेस में कम से कम X+1 ट्रिप की आवश्यकता होगी, जहां X, event_ids की संख्या है, यह सुनिश्चित करने के लिए कि यदि आप किसी विशेष Event_id के लिए मौजूद नहीं हैं तो आप एक रिकॉर्ड डालें (+1 ऊपर क्वेरी से आता है) , जो मौजूदा रिकॉर्ड के लिए विज़िट काउंटर को बढ़ाता है)। इसे अलग तरीके से कहने के लिए, MongoDB कैसे जानता है कि आप Event_id के लिए मान 2 का उपयोग करना चाहते हैं न कि 1? और 6 क्यों नहीं?

डब्ल्यू.आर.टी. रूबी के साथ बैच प्रविष्टि, मुझे लगता है कि यह संभव है क्योंकि निम्न लिंक सुझाता है - हालांकि मैंने केवल जावा ड्राइवर का उपयोग किया है:मोंगॉइड का उपयोग करके बैच इंसर्ट/अपडेट करें?



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB से विश्वसनीय रूप से पुनः कनेक्ट करें

  2. मोंगोडब इंडेक्स लापता मूल्यों को कवर करता है

  3. एनपीएम स्क्रिप्ट का उपयोग करके मोंगोडब सर्वर शुरू करना

  4. नेवला - में विभिन्न संग्रह के लिए एक ही स्कीमा (MongoDB)

  5. एक mongoDB w/Java ड्राइवर में अंतिम सम्मिलित दस्तावेज़ की आईडी प्राप्त करें