【问题标题】:$addToSet in nested array嵌套数组中的 $addToSet
【发布时间】:2020-05-14 23:45:06
【问题描述】:

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

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

我的 API 需要 2 个参数:

  1. 文档的ID,以及我要添加的女巫帖子中的帖子ID。

  2. 点赞该帖子的用户 ID。

如果用户喜欢帖子,他的用户 ID 应存储在 likesUser

假设用户喜欢某个帖子。该文档的 ID 为 123,首先我想使用该 ID 搜索文档。之后,我想搜索 ID 为 234 的帖子。现在我想将喜欢该帖子的用户的 ID 存储在 likesUser 中,在这种情况下,用户的 ID 为 5d345

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

如何归档?我已经用$elemMatch 尝试过,但它不起作用,它会抛出错误。

【问题讨论】:

标签: mongodb


【解决方案1】:

我查到了结果:

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

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多