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

नेवला टाइप स्ट्रिंग का उपयोग करके पॉप्युलेट नहीं कर सकता

वर्तमान में, केवल ObjectId वे मान जो _id . को संदर्भित करते हैं किसी अन्य संग्रह का उपयोग refs . के रूप में किया जा सकता है ।

यहां एक चर्चा है https://github.com/Automattic/mongoose/issues/2562

हालांकि, यह भविष्य में एक वृद्धि हो सकती है।

दरअसल, इसमें default जोड़ने की जरूरत नहीं है populate करने के लिए मान फ़ील्ड, बस fooAccessType को परिभाषित करें नीचे के रूप में

fooAccessType: {
    type: String, 
    ref: 'AccessType'
},  

population के लिए

FacilityPersonnel.findOne({_id:req.params.id})
    .populate('fooAccessType')
    .exec(

ObjectID population . में उपयोग किया जाता है , और ObjectId एक 12-बाइट बीएसओएन प्रकार है, जिसका उपयोग करके बनाया गया है:

तो SuperAdmin एक सही नहीं है ObjectID . आप UUID का उपयोग कर सकते हैं ObjectID . के डिफ़ॉल्ट मान के रूप में

var uuid = require('node-uuid');

// ...
fooAccessType: {
    type: String, 
    default: uuid.v1, 
    ref: 'AccessType'
},  

हालांकि, उपरोक्त कोड अजीब है, fooAccesType AccessType . के संदर्भ में है दस्तावेज़।

field को सहेजने का प्रयास करते समय दस्तावेज़, AccessType पहले सहेजा जाना चाहिए, फिर ObjectID प्राप्त करें इस सहेजे गए AccessType . से और इसे fooAccessType . पर असाइन करें , अंत में, नया field सहेजें दस्तावेज़।

var access = new AccessType({});
access.save(function(err){
   if (err)
      // error handling
   else {
       facilityperson.fooAccessType = access._id;
       facilityperson.save(function(err) {

       });
   }
});

population के लिए

FacilityPersonnel.findOne({_id:req.params.id})
    .populate('fooAccessType')
    .exec(


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB हाथ से पहले सभी क्षेत्रों को जाने बिना सभी क्षेत्रों को एकत्रित करता है

  2. काफ्का सिंक कनेक्टर:पुनरारंभ करने के बाद भी कोई कार्य असाइन नहीं किया गया है

  3. क्या फायरबेस यूआईडी कई ऐप्स में अद्वितीय है?

  4. MongoDB प्रारंभ करने में असमर्थ। त्रुटि:Addr पहले से उपयोग में है

  5. MEAN स्टैक स्थापित करना:npm -v मॉड्यूल.js:338 थ्रो इरेट; त्रुटि:मॉड्यूल './cache/caching-client.js' नहीं खोजा जा सका