El ejemplo aquí¿Cómo puedo hacer una verificación de tipo en MongoDB?
http://mongoosejs.com/docs/populate.html
proporciona el siguiente código
var story1 = new Story({
title: "A man who cooked Nintendo"
, _creator: aaron._id
});
_creator se ha definido anteriormente de la siguiente manera
_creator : { type: Schema.ObjectId, ref: 'Person' }
Si modifico el código para la siguiente
var story1 = new Story({
title: "A man who cooked Nintendo"
, _creator: {name: 'test'}
});
Parece feliz insertar los datos en MongoDB.
{ "title" : "A man who cooked Nintendo", "_creator" : { "name" : "test" }, "_id" : ObjectId("4fb7a55315c5f2de07000002"), "fans" : [ ] }
¿Cómo puedo detectar el error antes de la inserción? Me gustaría comprobar que no es solo un ObjectId sino también que corresponde a una Persona válida.
esto da 'TypeError: Object función ObjectId (clave, opciones) {SchemaType.call (this, key, options, 'ObjectID'); } tiene ningún método 'isValid'' – Tom
Creo que han cambiado a: 'mongoose.Types.ObjectId.isValid()' – herbyme
Actualizado, gracias @herbyme –