Comment puis-je définir un DBref en utilisant le document référencé lui-même et avoir toujours accès au document comme s'il était renseigné sur l'objet parent?Comment puis-je définir un document comme DBref dans Mongoose et avoir toujours accès au document
Si j'ai un schéma simple avec une configuration de champ comme un champ dbref:
var PostSchema = new Schema({
'title': String,
'_author', { type: Schema.ObjectId, ref: 'users'}
});
var Post = mongoose.model('posts', PostSchema);
var UserSchema = new Schema({
'name': String
});
Var User = mongoose.model('users', UserSchema);
Si je tente de le faire:
var john = User.findOne({'name': 'john'});
var post = new Post({'title': 'My Post'});
post._author = john;
post.save(function(err) {
if (!err) {
console.log(post._author);
}
});
Le post._author propriété a une valeur de l'auteur._id. Je préférerais que la propriété _author ait la valeur du document auteur complet (comme si j'avais effectué une requête de recherche sur la collection de posts et rempli l'objet auteur). Ma seule solution est d'effectuer une telle requête findOne à l'intérieur de la fonction de rappel de sauvegarde et de m'assurer que je la réintègre dans l'auteur ... cela me semble un peu inutile car je dois essentiellement me renseigner quand j'ai déjà toutes les informations .
Des suggestions? Merci
Oui, cela fonctionne très bien quand Je récupère juste les données, mais après avoir réglé les données, dois-je alors 'findOne' comme vous le décrivez? Il semble un peu étrange d'avoir à émettre une requête 'find' quand j'ai déjà les données requises. – jonotron