NodeJS / Mongoose:无法将ObjectID推送到文档数组中

时间:2018-03-10 05:54:11

标签: node.js mongodb mongoose

我正在创建一个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}
    ],
});

1 个答案:

答案 0 :(得分:0)

我认为你的回答有错字 它应该是user.posts而不是user.post

但除此之外,请记住,帖子对于没有帖子的用户来说可能是空的。 因此,如果数组为空且不存在,则应初始化该数组。

user.posts=user.posts || [ ]