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

MongoDB एक विदेशी कुंजी के साथ एक फ़ील्ड को दूसरे संग्रह में कॉपी करता है

आपके परीक्षण सेट अप में कई समस्याएं हैं:

  • फ़ील्ड नामों का मामला मेल नहीं खाता (आप color का संदर्भ दे रहे हैं के बजाय Color कॉपी करते समय)
  • केवल एक उदाहरण विदेशी कुंजी लक्ष्य संग्रह में मेल खाता है:ObjectId('515f7db83f71d6bcb1c41a48')
  • आपका अपडेट केवल "विदेशी कुंजी" के लिए पहले मेल खाने वाले दस्तावेज़ को प्रभावित करेगा। यह 1:1 संबंध के लिए ठीक होगा, लेकिन 1:अनेक के लिए नहीं

उपरोक्त को ध्यान में रखते हुए एक सही उदाहरण (गैर-मिलान कुंजियों को छोड़कर):

db.test1.User.find().forEach( 
    function(x) {
        db.test2.Car.update(
            // query 
            { userID: x._id },

            // update 
            { $set: { color: x.Color} },

            // options:
            { "multi" : true } // Update all matching documents
        );
    }
);

जिसके परिणामस्वरूप {color:blue} setting सेटिंग होती है एकमात्र विदेशी कुंजी के लिए जो वास्तव में नमूना दस्तावेज़ों में मेल खाती है:

db.test2.Car.find()
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a55"),
    "speed" : 202,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a49")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a56"),
    "speed" : 193,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a4a")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a54"),
    "color" : "blue",
    "speed" : 291,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a48")
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. दूरस्थ mongoDB सर्वर से कनेक्ट करना

  2. मोंगोडब रेप्लिकासेट होस्ट नाम परिवर्तन त्रुटि

  3. MongoDB प्रतिकृति सेट:प्राथमिक और माध्यमिक नोड्स में डिस्क आकार का अंतर

  4. MongoCommandException:त्रुटि 8000 (AtlasError) के साथ कमांड विफल:'कोई SNI नाम नहीं भेजा गया, सुनिश्चित करें कि MongoDB 3.4+ ड्राइवर/शेल का उपयोग करें।'

  5. GraphQL स्कीमा परिभाषाओं में हाइफ़न को कैसे संभालें