【问题标题】:MongoDB find many objects from array, using array of matching id'sMongoDB使用匹配ID的数组从数组中找到许多对象
【发布时间】:2020-11-03 13:21:21
【问题描述】:

我有一个这样的数组结构

我一直在尝试使用聚合管道、带有循环的 bulk.find() 以及 $in 运算符,但这些选项似乎都没有给我能力(通过输入的数组查找很多身份证)。 您如何通过我已经拥有的 ID 数组过滤数组中的许多对象? 我正在使用 PyMongo

【问题讨论】:

  • 您是否正在寻找返回的数组以根据提供的ids 进行过滤。我在这里看到很多字段都是数组,你想在哪一个上应用过滤器?请使用示例和预期输出更新问题。
  • 我想收集你在这里看到的 0-7 的对象数组,最外面的“组”也是集合中的直接键。我有一个我想用来过滤这些对象的“source_id”值数组。 p.s 我也在使用{'_id': ObjectId()} 来查找这个集合。
  • 使用聚合管道,展开后使用 $in 匹配。

标签: arrays mongodb filtering grouping pymongo


【解决方案1】:

使用聚合管道,展开后使用 $in 匹配

[
   {$unwind: "groups.asana"},
   {"source_id": {$in: ["id1", "id2", "id3"]}}
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2022-01-23
    • 2013-09-16
    相关资源
    最近更新 更多