mongodb - 带投影的 Mongo 查询

标签 mongodb mongodb-query pymongo

在 mongo 中,如果条件匹配,如何从列表中返回所有匹配的 dict 元素。

这是我的数据:

    {"packages": [
       {"package_name" : "abc", "installed_date" : "2016-08-03"},
       {"package_name" : "def", "installed_date" : "2016-08-04"},
       {"package_name" : "ghi", "installed_date" : "2016-08-03"},
       ]
    }

我应该如何查询以获取所有匹配 {"installed_date": "2016-08-03"}

的字典

我试过:

db.resource.find({packages: {"$elemMatch": {installed_date: "2016-08-03"}}})

但这给了我所有的数组元素。我想获取匹配 {installed_date: "2016-08-03"}

的字典元素

谢谢

最佳答案

尝试 mongo 聚合:

db.resource.aggregate([
  {'$match':{'packages.installed_date':'2016-08-03'}}, 
  {'$unwind':'$packages'}, 
  {'$match':{'packages.installed_date':'2016-08-03'}}, 
  {'$group':{'_id':'$_id', 'packages':{'$push':'$packages'}}}
])

关于mongodb - 带投影的 Mongo 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40066476/

相关文章:

node.js - 使用 mongodb 汇总所有文档

Mongodb - 根据其他字段值添加额外字段

mongodb - 根据多个匹配条件从嵌套列表中返回子文档

mongodb - 获取每个 MongoDB 聚合组的样本

mongodb - 如何对数组字段中的子文档进行排序?

javascript - Mongodb写顺序

node.js - 如何使用mongodb Node 包在mapReduce中打印

mongodb - 使用 mongoDB 中的条件更改嵌入文档中字段的值

django - django + PyMongo 池化的最佳实践?

python - MongoDB 聚合最近记录并将某些字段匹配到最近 30 天