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

mongoDB:ऐरे फ़ील्ड में जोड़े गए प्रत्येक नए बच्चे के लिए एक ऑब्जेक्ट आईडी बनाना

mongodb नहीं है विशेषज्ञ लेकिन, अगर मैं आपको सही ढंग से समझता हूं, तो आप चाहते हैं कि उप-दस्तावेज़ का _id फ़ील्ड स्वचालित रूप से डाला जाए।

मैंने threads created बनाया है db और फिर पहला message सम्मिलित किया messages . में निम्न आदेश का उपयोग कर संग्रह:

db.messages.insert({messages:[{_id:ObjectId(), message:"Message 1."}]}); 

ध्यान दें _id:ObjectId() खेत। परिणाम इस प्रकार है:

अब जबकि मेरे पास ObjectId(56...) . है , मैं उस विशेष रिकॉर्ड को अपडेट कर सकता हूं और उसमें और संदेश डाल सकता हूं। और आदेश इस प्रकार है:

db.messages.update({"_id":ObjectId("56...")}, 
{$push:{messages:{_id:ObjectId(), message:"I am message 2."}}});

और उपरोक्त संग्रह में नया संदेश सम्मिलित करेगा। नीचे स्क्रीनशॉट देखें:

और अंत में कुछ अपडेट के बाद संग्रह इस प्रकार दिखता है:

messages में सभी _id फ़ील्ड सरणी स्वचालित रूप से उत्पन्न होती है।

_id . का उपयोग करना एक अच्छा विचार नहीं हो सकता है विभिन्न कारणों से क्षेत्र। उप-दस्तावेजों के लिए कुंजी के रूप में _id का उपयोग करना है या नहीं, इस बारे में अधिक जानकारी के लिए कृपया Google।

मैंने MongoDB शेल संस्करण 3.0.6 का उपयोग किया है आदेशों के लिए।

संपादित करें 28-01-2016 16:09

चूंकि उपरोक्त समाधान MongoDB शेल पर आधारित था, इसलिए मैंने MongoDB के लिए Node.js ड्राइवर का उपयोग करके एक और परीक्षण करने का निर्णय लिया। सबसे पहले, मैं ऑब्जेक्टिड वैरिएबल को फॉलो के रूप में घोषित करता हूं

var ObjectID = require('mongodb').ObjectID;

मैं उस थ्रेड की दस्तावेज़ आईडी के साथ ऑब्जेक्ट आईडी का उपयोग करूंगा जिसमें संदेश को मेरे update में अनुसरण के रूप में सम्मिलित किया जाना चाहिए और findOneAndUpdate फ़ंक्शन कॉल

app.get('/insertNewMessage', function(req, res) {
    db.collection("messages").findOneAndUpdate({
        _id: new ObjectID('56aa3554e90911b64c36a424')
    }, {
        $push: {
            messages: {
                _id: new ObjectID(),
                message: "From NodeJS with <3 using findOneAndUpdate.Bye."
            }
        }
    }, function(err, result) {
        if (err)
            res.json(err);
        else
            res.json(result);
    });
});

दोनों का परीक्षण किया और ठीक काम करता है। नीचे स्क्रीनशॉट देखें:



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एक नोडज स्क्रिप्ट के भीतर एक मोंगो डेटाबेस में सभी संग्रह सूचीबद्ध करना

  2. क्या मोंगोडब मेमोरी उपयोग को सीमित करने का कोई विकल्प है?

  3. आपके MongoDB सर्वर के लिए निर्बाध स्केल

  4. क्या मोंगोडीबी एकत्रीकरण ढांचा $ समूह मूल्यों की एक सरणी लौटा सकता है?

  5. MongoDb कोड 100 के साथ बंद हो जाता है