Vous ne savez pas si ce que j'essaie de faire est possible. Je souhaite afficher la valeur de la propriété 'name' dans mon schéma d'utilisateur (modèle) en récupérant des données d'un document d'article qui fait référence au schéma de commentaire (modèle) qui fait référence au schéma utilisateur (modèle). 'Article' fait référence à 'comment' qui référence 'utilisateur' qui contient la valeur 'user.name' que je veux récupérer.Comment afficher la valeur de la propriété liée par référence imbriquée
Mon code de contrôleur pour récupérer l'article par des données d'identité et remplir les champs « auteur » et «commentaires de ressemble à ceci:
Article.findById(req.params.id)
.populate('author')
.populate('comments')
.exec(function(err, article){
if(err){
return req.flash('error', 'Unable to display article.');
} else {
res.render('articles/show', {
article: article
});
}
});
Mon schéma de l'article (modèle) comprend une propriété « commentaires » comme ceci:
...
comments: [
{
type: Schema.Types.ObjectId,
ref: "Comment"
}
],
...
Mon schéma de commentaire (modèle) comprend une propriété 'auteur' comme ceci:
...
text: String,
author:
{
type: Schema.Types.ObjectId,
ref: "User"
},
...
Le schéma utilisateur (modèle) a la propriété 'nom' qui contient la valeur que je veux afficher dans ma vue (EJS). Donc, jusqu'à présent, j'ai été incapable de trouver un moyen de l'afficher, peut-être parce que je ne peux pas le faire sans une autre requête. Je parcourt le tableau 'article.comments' et affiche le texte du commentaire avec <%= comment.text %>
mais je n'arrive pas à trouver un moyen d'afficher la propriété 'name' du schéma 'utilisateur' (model) référencé dans le schéma de commentaire (modèle).
J'apprécierais n'importe quel aperçu quant à mon erreur (s).
Merci Mikey. Implémenté et obtenant l'erreur: "Impossible de lire la propriété 'name' de undefined" Je peux afficher 'comment.text' et' comment._id' mais pas la propriété du schéma utilisateur référencé dans 'comment.author' – JimB814