假設(shè)我從mongoDb導(dǎo)出了這個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}}}):但是結(jié)果中的所有文件。我的查詢錯了嗎?
1 回答

冉冉說
TA貢獻1877條經(jīng)驗 獲得超1個贊
有兩件事-您要匹配components數(shù)組中的傳感器文檔,并且$gte僅適用于整數(shù)和日期。
如果將數(shù)據(jù)轉(zhuǎn)換為整數(shù),則可以$gte像這樣使用和查詢:
db.test.find({
'node.components.type': 'backup',
'node.components.sensors': {
$elemMatch: {'name': 'backup-start-date',
'value': {'$gte': 168571445}}}})
添加回答
舉報
0/150
提交
取消