वर्तमान में, केवल 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(