我正在创建一个post
文档然后保存它。保存后,我想获取已保存帖子的ID。然后,我想将此ID插入array "posts"
文档中的"user"
。
但是,问题是在保存帖子并获得回调"savedPost"
后,我无法将其ID推送到"posts"
文档中的"user"
数组中。它返回"Cannot read property 'push' of undefined"
。
当我检查MongoDB时,我可以看到"post"
确实已保存到数据库中,因此问题似乎是在回调之后。我尝试在线搜索,但没有一个答案对我有帮助。
以下是代码。
的NodeJS /猫鼬:
post.save(function(err, savedPost){
if(err){
console.log(err);
} else {
//problem seems to start here
var postId = {id: 'savedPost._id'};
user.post.push(postId);
user.save();
}
});
用户架构
var UserSchema = new mongoose.Schema({
posts: [
{id: String}
],
});
答案 0 :(得分:0)
我认为你的回答有错字
它应该是user.posts
而不是user.post
但除此之外,请记住,帖子对于没有帖子的用户来说可能是空的。 因此,如果数组为空且不存在,则应初始化该数组。
user.posts=user.posts || [ ]