Actualmente, solo ObjectId
valores que se refieren al _id
de otra colección se puede usar como refs
.
Aquí hay una discusión https://github.com/Automattic/mongoose/issues/2562
Sin embargo, podría ser una mejora en el futuro.
En realidad, no es necesario agregar default
valor a populate
campo, simplemente defina el fooAccessType
como abajo
fooAccessType: {
type: String,
ref: 'AccessType'
},
Para population
FacilityPersonnel.findOne({_id:req.params.id})
.populate('fooAccessType')
.exec(
El ObjectID
se utiliza en la population
y el ObjectId
es un tipo BSON de 12 bytes, construido usando:
Así que SuperAdmin
no es un ObjectID
correcto . Podría usar UUID
como el valor predeterminado de ObjectID
var uuid = require('node-uuid');
// ...
fooAccessType: {
type: String,
default: uuid.v1,
ref: 'AccessType'
},
Sin embargo, el código anterior es raro, el fooAccesType
es una referencia a AccessType
documento.
Cuando intente guardar el field
documento, el AccessType
debe guardarse primero, luego obtenga el ObjectID
de este AccessType
guardado y asígnelo a fooAccessType
, finalmente, guarde el nuevo 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(