V současné době pouze ObjectId hodnoty, které odkazují na _id jiné kolekce lze použít jako refs .
Zde je jedna diskuze https://github.com/Automattic/mongoose/issues/2562
V budoucnu by však mohlo jít o jedno vylepšení.
Ve skutečnosti není nutné přidávat default hodnotu populate stačí definovat fooAccessType jak je uvedeno níže
fooAccessType: {
type: String,
ref: 'AccessType'
},
Pro population
FacilityPersonnel.findOne({_id:req.params.id})
.populate('fooAccessType')
.exec(
ObjectID se používá v population a ObjectId je 12bajtový typ BSON, vytvořený pomocí:
Takže SuperAdmin není jedno správné ObjectID . Můžete použít UUID
jako výchozí hodnotu ObjectID
var uuid = require('node-uuid');
// ...
fooAccessType: {
type: String,
default: uuid.v1,
ref: 'AccessType'
},
Výše uvedený kód je však divný, fooAccesType je odkaz na AccessType dokument.
Při pokusu o uložení field dokument, AccessType by měl být nejprve uložen, pak získat ObjectID z tohoto uloženého AccessType a přiřaďte jej fooAccessType , případně uložte nové field dokument.
var access = new AccessType({});
access.save(function(err){
if (err)
// error handling
else {
facilityperson.fooAccessType = access._id;
facilityperson.save(function(err) {
});
}
});
Pro population
FacilityPersonnel.findOne({_id:req.params.id})
.populate('fooAccessType')
.exec(