假设我从mongoDb导出了这个Json{ "_id":{ "$oid":"51ca002d9e67460354bb0089" }, "node":{ "id":"1", "components":[ { "sensors":[ { "name":"backup-job-name", "value":"Job_2" }, { "name":"backup-job-id", "value":"187" }, { "name":"backup-start-date", "value":"1372138227" }, { "name":"backup-stop-date", "value":"1372138235" }, { "name":"backup-nb-errors", "value":"0" }, { "name":"backup-nb-warnings", "value":"0" }, { "name":"backup-source-files", "value":"402" }, { "name":"backup-source-bytes", "value":"168571449" }, { "name":"backup-status", "value":null } ], "type":"backup", "serial":"1-backup-backup-job-name-Job_2" }, { "sensors":[ { "name":"backup-job-name", "value":"Test_bckp" }, { "name":"backup-job-id", "value":"" }, { "name":"backup-start-date", "value":"0" }, { "name":"backup-stop-date", "value":"0" }, } ] }, "timestamp":1372192813}我使用python,我想获取“ backup-start-date”(存储为时间戳)大于给定值的文档。我尝试过collection.find({ 'node.components.type': 'backup', 'node.components.sensors': {'name': 'backup-start-date', 'value': {'$gte': ts_to_compare_with}}}):但是结果中的所有文件。我的查询错了吗?
1 回答

冉冉说
TA贡献1877条经验 获得超1个赞
有两件事-您要匹配components数组中的传感器文档,并且$gte仅适用于整数和日期。
如果将数据转换为整数,则可以$gte像这样使用和查询:
db.test.find({
'node.components.type': 'backup',
'node.components.sensors': {
$elemMatch: {'name': 'backup-start-date',
'value': {'$gte': 168571445}}}})
添加回答
举报
0/150
提交
取消