首页 > 解决方案 > 如何使用 MongoDB 聚合匹配两个列表

问题描述

我的收藏为: col1

{"_id":"5c3ea35651166f3refsfd5",
"environment": "production",
"application": ['cloud', 'android', 'finance']},

{"_id":"5c3ea35651166f3refsfd6",
"environment": "production",
"application": ['banking', 'network', 'finance']}

只有当集合中的应用程序与['cloud', 'database', 'booking']列表中的应用程序匹配时,我才想投影数据。在这种情况下,我应该只能获取第一个文档,因为它在文档和列表中都有“”。

我需要使用聚合。但我没有得到正确的方向..

标签: mongodbaggregation-frameworkpymongo

解决方案


您可以使用$in查询运算符

col1.aggregate([
  { '$match': { 'application': { '$in': ['cloud', 'database', 'booking'] }}},
  { '$project': { 'environment': 1, 'application':1 }}
])

推荐阅读