Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS/Mongoose:无法将ObjectID推入文档数组_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js NodeJS/Mongoose:无法将ObjectID推入文档数组

Node.js NodeJS/Mongoose:无法将ObjectID推入文档数组,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在创建一个post文档,然后保存它。保存后,我想获取保存的帖子的ID。然后,我想将此ID插入“user”文档中的数组“posts” 但是,问题是,在保存帖子并获得回调后,“savedPost”,我无法将其ID推入“user”文档中的“posts”数组中。它返回了“无法读取未定义的属性“push” 当我检查MongoDB时,我可以看到“post”确实保存到了数据库中,所以问题似乎是在回调之后。我试着在网上搜索,但没有一个答案对我有帮助 这是密码 NodeJS/Mongoose: post.sa

我正在创建一个
post
文档,然后保存它。保存后,我想获取保存的帖子的ID。然后,我想将此ID插入
“user”
文档中的
数组“posts”

但是,问题是,在保存帖子并获得回调后,
“savedPost”
,我无法将其ID推入
“user”
文档中的
“posts”
数组中。它返回了
“无法读取未定义的属性“push”

当我检查MongoDB时,我可以看到
“post”
确实保存到了数据库中,所以问题似乎是在回调之后。我试着在网上搜索,但没有一个答案对我有帮助

这是密码

NodeJS/Mongoose:

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}
    ],
});

我想你的答案有错 它应该是
user.posts
而不是
user.post

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

user.posts=user.posts || [ ]

你不应该使用@hassaniam吗?看起来有点混乱。你能告诉我怎么做吗?你是说
user.posts
而不是
user.post
?请注意结尾处的
s
标记为关闭,因为感谢您指出。没有注意到打字错误。很抱歉。