如何在pymongo中使用isodate进行查询

时间:2015-05-06 20:55:39

标签: python pymongo

我有一个可以在mongo shell中运行的mongodb查询:

db.collection.find({ created_at:  { $gte : ISODate("2015-03-01T00:00:00.000Z"), $lt : ISODate("2015-03-30T00:00:00.00Z") } })

我正在尝试下面的pymongo:

test_range = agents.coll.find({ "created_at" :  { "$gte" : "ISODate('2015-03-01T00:00:00.000Z')", "$lt" : "ISODate('2015-03-30T00:00:00.00Z')" } })

我正在SyntaxError: invalid syntax

在pymongo查询中处理ISODate的正确方法是什么?

2 个答案:

答案 0 :(得分:10)

日期在MongoDB中存储为ISODate,但是当您使用Pymongo时,日期将转换为Python Datetime对象。因此,使用Pymongo,您的查询应如下所示:

test_range = agents.coll.find({ "created_at": {"$gte" : datetime(2015, 3, 1), "$lt": datetime(2015, 3, 30)}})

答案 1 :(得分:1)

使用isoformat()。示例dt = datetime.datetime.now().isoformat()