按日期时间查询pymongo

时间:2015-05-07 10:19:36

标签: python python-2.7 pymongo

我遇到了一个让我头疼近一天的问题。

python脚本是:

{{1}}

问题是上面的代码出了什么问题? 或者如何使用pymongo脚本在两个日期之间查询来自mongoDB的数据?

1 个答案:

答案 0 :(得分:3)

此处有2个问题,您尝试在数据库对象上调用find,还需要使用datetime.datetime对象查询$gte$lt在mongodb中正常工作。

def query_data(IP,datefrom,dateto):
    conn = pymongo.MongoClient(IP)
    db = conn.mymongo

    # time.mktime will only return a float point number
    # what you really need are the datetime.datetime objects
    startdate = datetime.datetime.strptime(datefrom,'%Y-%m-%d')
    enddate = datetime.datetime.strptime(dateto,'%Y-%m-%d')

    # you need to call find method on collection, not database object
    cursor = db['your_collection'].find({'username':'test','created':{'$gte':startdate,'$lt':enddate}})
    print cursor.count()
    ...

我还没有对它进行测试,但它应该按预期工作,并希望这会有所帮助。