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
标记为关闭,因为感谢您指出。没有注意到打字错误。很抱歉。