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

मेरे नेवला स्कीमा में किसी अन्य स्कीमा का संदर्भ कैसे लें?

आप जनसंख्या . का उपयोग करके इसका वर्णन कर सकते हैं

<ब्लॉकक्वॉट>

जनसंख्या दस्तावेज़ में निर्दिष्ट पथों को अन्य संग्रह (संग्रहों) से दस्तावेज़ (दस्तावेज़ों) के साथ स्वचालित रूप से बदलने की प्रक्रिया है। हम एक दस्तावेज़, एकाधिक दस्तावेज़, सादा वस्तु, एकाधिक सादा ऑब्जेक्ट, या क्वेरी से लौटाए गए सभी ऑब्जेक्ट को पॉप्युलेट कर सकते हैं।

मान लें कि आपकी इवेंट स्कीमा को इस प्रकार परिभाषित किया गया है:

var mongoose = require('mongoose')
  , Schema = mongoose.Schema

var eventSchema = Schema({
    title     : String,
    location  : String,
    startDate : Date,
    endDate   : Date
});

var personSchema = Schema({
    firstname: String,
    lastname: String,
    email: String,
    gender: {type: String, enum: ["Male", "Female"]}
    dob: Date,
    city: String,
    interests: [interestsSchema],
    eventsAttended: [{ type: Schema.Types.ObjectId, ref: 'Event' }]
});

var Event  = mongoose.model('Event', eventSchema);
var Person = mongoose.model('Person', personSchema);

यह दिखाने के लिए कि कैसे आबादी का उपयोग किया जाता है, पहले एक व्यक्ति वस्तु बनाएं, aaron = new Person({firstname: 'Aaron'}) और एक ईवेंट ऑब्जेक्ट, event1 = new Event({title: 'Hackathon', location: 'foo'}) :

aaron.eventsAttended.push(event1);
aaron.save(callback); 

फिर, जब आप अपनी क्वेरी बनाते हैं, तो आप इस तरह के संदर्भों को पॉप्युलेट कर सकते हैं:

Person
.findOne({ firstname: 'Aaron' })
.populate('eventsAttended') // only works if we pushed refs to person.eventsAttended
.exec(function(err, person) {
    if (err) return handleError(err);
    console.log(person);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. JS सर्वर पर आंशिक लोड हो रहा है

  2. अनजाने मोंगो संस्करण के उन्नयन के बाद पुराने मोंगो डेटाबेस का उन्नयन

  3. MongoDB क्वेरी केवल एम्बेडेड दस्तावेज़ वापस करने के लिए

  4. MongoDB में कुल ($ मैच) और खोजने के बीच अंतर?

  5. संस्करण त्रुटि:Node.js/Mongoose पर कोई मिलान करने वाला दस्तावेज़ त्रुटि नहीं मिला