Как я могу получить доступ к конкретным данным ссылочной схемы с Nodejs и mongoose - PullRequest
1 голос
/ 10 июля 2019

Я хочу сделать авторизацию комментариев на моем сайте. Я хочу только получить комментарии к сообщению, которое я нашел по его идентификатору. И доступ к данным этих комментариев.

Это мой маршрут сообщений.

Campground.findById(req.params.id).populate("comments").exec(function(err, foundCampground){
        if(err){
            console.log(err);
        }else{
            User.findById(req.user._id, (err, user)=>{
                if(err){
                    console.log(err);
                }else{
                    Campground.findById({'foundCampground.comments._id': Comments._id}, (err, comments)=>{
                        console.log("Comments of this post "+comments);
                        Comments.find({"author.id": user.id}, function(err, comment){
                            var authID = foundCampground.author.id;
                            var userID = user.id;
                            var commentIDs = [];

                            comment.forEach(function(yorum){
                                commentIDs.push(yorum.author.id);
                            });

                            var commentID = commentIDs[0];

                            console.log("alinan comments"+comment);
                            console.log("Comment Id " + commentID);
                            console.log("UserID "+userID);

                            if(userID == commentID){
                                console.log("EQUALO MORUQA");
                            }

                            res.render("campgrounds/show",{campground: foundCampground, authID: authID, userID: userID, commentID: commentID});
                        });
                    }); 
                }
            });
        }
    });

Это моя модель кемпинга

var campgroundSchema = new mongoose.Schema({
    name: String,
    image: String,
    description: String,
    comments: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Comment"
    }],
    author: {
        id: String,
        user: String,
    }
});

Это мой комментарий модель

var commentSchema = new mongoose.Schema({
    text: String,
    author:{
        username: String,
        id: String,
    }
});

Что я должен написать как запрос, чтобы получить только комментарии foundCampground?

1 Ответ

0 голосов
/ 10 июля 2019

Поскольку вы уже звонили .populate('comments') в своем первом запросе, вы можете получить комментарии foundCampground, позвонив foundCampground.comments

...