【问题标题】:MongoDB Query does not return expected resultsMongoDB 查询未返回预期结果
【发布时间】:2014-06-05 07:23:55
【问题描述】:

我正在使用 Python。我将 datetime.utcnow() 发送到我的 MongoDB。 我的代码有什么问题:

deltaTime = timedelta(minutes=1)

s.find({"status" : "pending",
        "$and" : [{"time" :  {"$lt" :  datetime.utcnow()}},
                  {"time" :  {"$gt" :  datetime.utcnow() - deltaTime }}
                 ]
       }, page=0 , perpage=15 )

但它不起作用。

MongoDb 中的相同查询也不起作用:

db.s.find(
{"status" : "pending"  ,
        "$and" :
                [
                  {"time" :  {"$lt" : ISODate("2014-06-05 06:59:31.442Z")  }   }
                  ,
                  {"time" :  {"$gt" : ISODate("2014-06-05 05:59:31.442Z") }   }
                ]
}

)

MongoDB 说“脚本执行成功,但没有结果显示” 我中间有记录!但是没有结果,我也尝试了没有 ISODate() 的 MongoDB 查询,但仍然没有结果!

【问题讨论】:

  • 你能展示你如何导入日期时间吗?比如import datetimefrom datetime import * 或者只是什么?
  • 从日期时间导入日期时间,时间增量
  • 根据示例:api.mongodb.org/python/current/tutorial.html#documents 它使用 datetime 包中的 datetime 类:datetime.datetime
  • 是的,他似乎做了正确的导入。
  • 这段代码是静默失败还是有任何消息?数据是从 python 还是其他东西写入数据库,比如 nodeJS/meteor ?

标签: python mongodb


【解决方案1】:

我通过以下查询解决了这个问题:

db.s.find(
       {
       "status" : "Pending"  
       ,
       "time" :  {
                  "$gt" : ISODate("2014-06-05 06:01:29.397069") , 
                  "$lt" : ISODate("2014-06-05 07:01:29.397069")
                 } 
       }
       )

在这种情况下,“$and”对我不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多