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

नेवला में mysql के बाएं जुड़ने जैसे फ़ंक्शन को कैसे कार्यान्वित करें?

आप जो करने की कोशिश कर रहे हैं वह संभव नहीं है क्योंकि मोंगोडब पर कोई जॉइन स्टेटमेंट नहीं है।

आप इसे दो तरीकों से हासिल कर सकते हैं:

1 - DBRefs द्वारा: अपनी स्कीमा को एक में बदलना जिसमें सभी उपयोगकर्ता जानकारी शामिल हो और उन्हें दो अलग-अलग स्कीमा में विभाजित न करें जैसा कि आप कर रहे हैं, देखें असामान्यीकृत . फिर आप जनसंख्या का उपयोग कर सकते हैं सभी व्यक्तियों का डेटा प्राप्त करने के लिए कार्य करता है।

2 - मैन्युअल संदर्भों द्वारा: दूसरा समाधान डेटाबेस को दूसरी कॉल करना है जो उपयोगकर्ता प्रोफ़ाइल डेटा को फ़िल्टर के रूप में उपयोगकर्ता आईडी का उपयोग कर प्राप्त कर रहा है।

उदाहरण 1:

इस तरह आप डेटाबेस में दूसरी कॉल के बिना सभी व्यक्तियों का डेटा प्राप्त कर सकते हैं।

var personSchema = Schema({
  _id     : Number,
  name    : String,
  birthday: Date,
  profilelink: String,
  email: String
});

var storySchema = Schema({
  _creator : { type : Schema.Types.ObjectId, ref: 'Person' },
  title    : String
});

Story
.find()
.populate(['_creator'])
.exec(function(err, stories) {
    //do your stuff here
}

ध्यान दें कि मैं Schema.Types.ObjectId . प्रकार का उपयोग कर रहा हूं न कि संख्या . इस तरह, आप _creator . को एक नया मान निर्दिष्ट कर सकते हैं _id . में से किसी एक को पास करना या व्यक्ति वस्तु और नेवला वस्तु को उसकी _id में बदल देगा। उदाहरण के लिए, आप कुछ इस तरह पोस्ट कर सकते हैं

{
    _creator : {
        _id     : 123123123123,
        name    : 'Foo',
        birthday: '0000-00-00',
        profilelink: 'http://foo.bar',
        email: '[email protected]'
    },
    title    : 'Mr'
}

... और नेवला बदल जाएगा

{
    _creator : 123123123123,
    title    : 'Mr'
}

उदाहरण 2:

इस तरह आपका डेटा अभी भी सामान्य हो गया है और आप दूसरी कॉल के साथ सभी व्यक्तियों का डेटा प्राप्त कर सकते हैं।

Story
.find()
.exec(function(err, stories) {
    var arrayLength = stories.length;

    for (var i = 0; i < arrayLength; i++) {
        var story = stories[i];
        personProfile.findById(story._creator, function (err, person) {
            story._creator = person;
        }
    };
    // do your stuff here
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. वसंत डेटा मोंगोडब के साथ जावा में $ लुकअप चरण का उपयोग कैसे करें?

  2. टर्न आधारित मल्टीप्लेयर आईफोन बोर्ड गेम के लिए मुझे अपने डीबी और एपीआई सर्वर को कैसे आर्किटेक्ट करना चाहिए? (नोडज, मोंगो, सोफे, आदि के बारे में सोच)

  3. नोडजेएस का उपयोग करके JSON ऑब्जेक्ट से किसी आइटम को कैसे हटाएं?

  4. संग्रह को छानने के लिए बेहतर पैटर्न

  5. नेवला आउटपुट त्रुटि त्रुटि:कनेक्शन बंद हो गया