我正在建立一个网站,您可以在其中分享露营地的照片。当有人发表评论时,我只希望评论的所有者看到删除和编辑选项。
我创建了一个评论模型,并创建了一个包含评论所有者的ID和用户名的author对象。但是,当我尝试从该作者对象获取所有者的ID时,如果我尝试通过find方法获取数据并编写Comment.author.id,它也会返回undefined,它返回语法错误并显示意外的标记“。”
那是我的评论模型。
var commentSchema = new mongoose.Schema({
text: String,
author:{
username: String,
id: String,
}
});
那是露营地路线
Campground.findById(req.params.id).populate("comments").exec(function(err, foundCampground){
if(err){
console.log(err);
}else{
//render show template with that campground
console.log(foundCampground.comments);
User.findById(req.user._id, (err, user)=>{
if(err){
console.log(err);
}else{
console.log(foundCampground.comments._id);
Comments.find({Comments.author.id: foundCampground.comments._id}, function(err, comment){
var authID = foundCampground.author.id;
var userID = user._id;
var commentID = comment.author.id;
console.log("Comment Id " + commentID);
console.log("UserID "+userID);
res.render("campgrounds/show",{campground: foundCampground, authID: authID, userID: userID});
});
}
});
}
});
同样的东西在营地模型上起作用
var campgroundSchema = new mongoose.Schema({
name: String,
image: String,
description: String,
comments: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
}],
author: {
id: String,
user: String,
}
});
我希望从comment.author.id获取用户ID,但是我不确定。
答案 0 :(得分:0)
您可能需要将Comments.find({Comments.author.id: foundCampground.comments._id}
替换为Comments.find({"author.id": foundCampground.comments._id}
。