Je ne peux pas remplir manuellement ou automatiquement le champ "créateur" d'un objet nouvellement sauvegardé... la seule solution que je trouve est de réinterroger les objets que je possède déjà, ce que je n'aimerais pas faire.
Voici l'installation :
var userSchema = new mongoose.Schema({
name: String,
});
var User = db.model('User', userSchema);
var bookSchema = new mongoose.Schema({
_creator: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
description: String,
});
var Book = db.model('Book', bookSchema);
C'est là que je m'arrache les cheveux
var user = new User();
user.save(function(err) {
var book = new Book({
_creator: user,
});
book.save(function(err){
console.log(book._creator); // is just an object id
book._creator = user; // still only attaches the object id due to Mongoose magic
console.log(book._creator); // Again: is just an object id
// I really want book._creator to be a user without having to go back to the db ... any suggestions?
});
});
EDIT : la dernière mangouste a corrigé ce problème et ajouté la fonctionnalité de populage, voir la nouvelle réponse acceptée.