$ addToSet在嵌套数组中

伊法鲁基

我需要$addToSet在一个嵌套数组上执行一个,这里是一个例子:

{
   _id: 123,
   posts:[
      {
         _id: 234,
         userid: 123 //its same id like the documents id,
         likesUser: []
      }
   ]
}

我的API需要2个参数:

  1. 我要添加的文档ID和女巫帖子中的Post ID。

  2. 喜欢该帖子的用户的ID。

如果用户喜欢帖子,则其用户ID应该存储在中likesUser

假设用户喜欢一个帖子。该文档具有id 123,首先我要搜索具有该ID的文档。之后,我想用id搜索帖子234现在我想将喜欢该帖子的用户的ID存储在中likesUser,在这种情况下,用户具有ID5d345

{
   _id: 123,
   posts:[
      {
         _id: 234,
         userid: 123 //its same id like the documents id,
         likesUser: ["5d345"]
      }
   ]
}

我该如何存档?我已经尝试过了,$elemMatch但是它不起作用,它使我出错。

伊法鲁基

我发现了结果:

 let result = await Post.findOneAndUpdate(
    {
      _id: mongoose.Types.ObjectId(userId),
      "posts._id": mongoose.Types.ObjectId(postId)
    },
    {
      $addToSet: {
        "posts.$.likesUser": USER
      }
    }
  );

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章