mongodb - Mongo查询文档字段中数组列表中的2个值
问题描述
我在一个集合中有一个文档,该文档有一个名为“myList”的字段,它有列表项,我需要能够查询具有“good”和“doneBy”字段的“status”字段为“system”的集合文档"在“我的列表”字段中:
[collection].myList
[
{
"location" : "3826487.pdf",
"status" : "good",
"time" : ISODate("2017-06-27T20:03:46.512Z"),
"reportIdx" : 0,
"doneBy" : "System"
},
{
"location" : "rt-0.pdf",
"status" : "bad",
"time" : ISODate("2017-06-28T16:24:16.559Z"),
"reportIdx" : 0,
"doneBy" : "System"
}
]
它应该返回列表项由该列表中的第一个限定的所有文档。即使第二个列表项有“坏”,它也应该返回这个集合文档,其中“myList”具有这两个列表项。
我发现搜索其中一个字段是这样,但是如何同时进行,我不确定语法。
db.getCollection('[collection]').find({myList : { $elemMatch : { "status" : "good" }}})
解决方案
我相信我找到了它:
db.getCollection('[collection]')find({ myList:
{ $all: [
{$elemMatch : { "status" : "good" }},
{$elemMatch : {"doneBy" : "System"}}
]
} })
推荐阅读
- python - 我的二等分函数有一个小错误
- python - 如何复制两个mmap之间的特定范围?
- r - 使用 qqggplot 更改 QQ 图中的线条颜色
- amazon-s3 - Terraform bucket_notification 抛出错误
- c# - Winforms Inhereted Control 阻止设计人员工作
- ios - UITableviewCell 中的 collectionView numberOfItemsInSection
- java - 如何在 elasticsearch 7.1 中更新文档
- r - 在列中查找连续短语的出现
- arcore - 缩放/缩放更大的 3D 模型
- google-cloud-platform - filter gcp web api 根据前缀获取磁盘列表