为了账号安全,请及时绑定邮箱和手机立即绑定

用mongoDb过滤时间戳

用mongoDb过滤时间戳

白板的微信 2021-04-04 09:18:00
假设我从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}}}})


查看完整回答
反对 回复 2021-04-06
  • 1 回答
  • 0 关注
  • 243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号