Atualmente, apenas
ObjectId valores que se referem ao _id de outra coleção pode ser usado como refs . Aqui está uma discussão https://github.com/Automattic/mongoose/issues/2562
No entanto, pode ser um aprimoramento no futuro.
Na verdade, não é necessário adicionar
default valor para populate campo, basta definir o fooAccessType como abaixo fooAccessType: {
type: String,
ref: 'AccessType'
},
Para
population FacilityPersonnel.findOne({_id:req.params.id})
.populate('fooAccessType')
.exec(
O
ObjectID é usado na population e o ObjectId é um tipo BSON de 12 bytes, construído usando:Então
SuperAdmin não é um ObjectID correto . Você pode usar UUID
como o valor padrão de ObjectID var uuid = require('node-uuid');
// ...
fooAccessType: {
type: String,
default: uuid.v1,
ref: 'AccessType'
},
No entanto, o código acima é estranho, o
fooAccesType é referência a AccessType documento. Ao tentar salvar o
field documento, o AccessType deve ser salvo primeiro, então pegue o ObjectID deste AccessType salvo e atribua-o a fooAccessType , eventualmente, salve o novo field documento. var access = new AccessType({});
access.save(function(err){
if (err)
// error handling
else {
facilityperson.fooAccessType = access._id;
facilityperson.save(function(err) {
});
}
});
Para
population FacilityPersonnel.findOne({_id:req.params.id})
.populate('fooAccessType')
.exec(