Mongodb 一个对象包含两个数组。如何匹配所有数组中的id?

Mongodb 一个对象包含两个数组。如何匹配所有数组中的id?,mongodb,Mongodb,我让对象包含两个数组,说明如何使用or条件匹配这两个数组中的id e、 g 我有一个成员的id,希望获取记录的详细信息。您可以使用$filter使用\u id进行筛选 [ { $project: { groupA: { $filter: { input: "$members.groupA", cond: { $eq: [ "$$this

我让对象包含两个数组,说明如何使用or条件匹配这两个数组中的id

e、 g


我有一个成员的id,希望获取记录的详细信息。

您可以使用
$filter
使用
\u id
进行筛选

[
  {
    $project: {
      groupA: {
        $filter: {
          input: "$members.groupA",
          cond: {
            $eq: [
              "$$this._id",
              "5f3d05ceb1268c1cc208ef90"
            ]
          }
        }
      },
      groupB: {
        $filter: {
          input: "$members.groupB",
          cond: {
            $eq: [
              "$$this._id",
              "5f3d05ceb1268c1cc208ef90"
            ]
          }
        }
      }
    }
  }
]

工作

您能否解释更多,yiu能否分享预期输出?它提供了所有数据,但我只需要id在A组或B组中存在的数据。与所有其他信息(如状态)一起,我已从B组中删除了“5f37b790b9c01886b29238fc”详细信息。这对你有帮助吗?
[
  {
    $project: {
      groupA: {
        $filter: {
          input: "$members.groupA",
          cond: {
            $eq: [
              "$$this._id",
              "5f3d05ceb1268c1cc208ef90"
            ]
          }
        }
      },
      groupB: {
        $filter: {
          input: "$members.groupB",
          cond: {
            $eq: [
              "$$this._id",
              "5f3d05ceb1268c1cc208ef90"
            ]
          }
        }
      }
    }
  }
]