Mongoose no está jugando muy bien con la población. este es mi modelo
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
mongoose.connect(process.env.MONGO_URI);
var userSchema = new Schema({
username: String,
password: String,
books: [{type: Schema.Types.ObjectId, ref: 'User'}]
}
);
var bookSchema = new Schema({
bookid: {type:String, unique:true, required:true},
imgURL: String
});
module.exports.user = mongoose.model('User', userSchema);
module.exports.book = mongoose.model('Book', bookSchema);
La base de datos parece correcta.
{ "_id" : ObjectId("56a17cd70a498fcc37cdbe60"), "username" : "test", "password" : "test", "books" : [ ObjectId("56a17d21d43dc32a3a9837de"), ObjectId("56a17ee5d43dc32a3a9837e4"), ObjectId("56a17f5dd43dc32a3a9837e6"), ObjectId("56a17f9fd43dc32a3a9837e8") ], "__v" : 4 }
Pero cuando hago un populate me sale un 'books' Array vacío
users.findOne({'_id':userid}).populate('books').exec(function(err,data){
if (err) return console.error(err);
if(data){
}
});
Todo está ahí, simplemente no se rellenará. Cualquier sugerencia será muy apreciada.