mongodb - 如何使用 MongoDB 聚合匹配两个列表
问题描述
我的收藏为: col1
{"_id":"5c3ea35651166f3refsfd5",
"environment": "production",
"application": ['cloud', 'android', 'finance']},
{"_id":"5c3ea35651166f3refsfd6",
"environment": "production",
"application": ['banking', 'network', 'finance']}
只有当集合中的应用程序与['cloud', 'database', 'booking']列表中的应用程序匹配时,我才想投影数据。在这种情况下,我应该只能获取第一个文档,因为它在文档和列表中都有“云”。
我需要使用聚合。但我没有得到正确的方向..
解决方案
您可以使用$in
查询运算符
col1.aggregate([
{ '$match': { 'application': { '$in': ['cloud', 'database', 'booking'] }}},
{ '$project': { 'environment': 1, 'application':1 }}
])
推荐阅读
- node.js - 为什么 get/post 方法会抛出 Unauthorized (401) ERR?
- javascript - 您将如何在单词搜索求解器中实现垂直单词查找?
- google-apps-script - 在工作表的多个选项卡中打开到今天的日期
- amazon-web-services - 如何在不破坏池的情况下使 Cognito 用户池电子邮件属性可变?
- python - Asyncio 不会在 Python 中同时运行所有任务。尝试批量导出csv文件
- python - 我的代码中是否存在数据泄漏(ROC 曲线给出 1.00 AUC 分数)?
- jmeter - 使用 Amazon ECS 进行 Jmeter 远程测试
- c - 如何从接收方向发送方发送 NACK 消息
- android - AndroidViewModel 实例化而不传递应用程序上下文?
- c++ - 调用数组内部的结构