我一直在尝试寻找一种使用pyMongo客户端创建ISODate对象的方法,但到目前为止还没有成功。
我使用的是http://pypi.python.org/pypi/pymongo3客户端,这是目前Python3中唯一可用的严重客户端,但问题似乎不是来自这个特定的pymongo版本。
我想知道你们中是否有人找到了从pymongo客户端使用此MongoDB对象类型的解决方案……感谢您的帮助!
发布于 2011-10-05 00:51:27
您只需要存储datetime.datetime的一个实例。
从python shell插入:
>>> c.test.test.insert({'date': datetime.datetime.utcnow()})
ObjectId('4e8b388367d5bd2de0000000')
>>> c.test.test.find_one()
{u'date': datetime.datetime(2011, 10, 4, 16, 46, 59, 786000), u'_id': ObjectId('4e8b388367d5bd2de0000000')}在mongo shell中查询:
> db.test.findOne()
{
"_id" : ObjectId("4e8b388367d5bd2de0000000"),
"date" : ISODate("2011-10-04T16:46:59.786Z")
}发布于 2012-03-06 22:17:46
对于那些想知道如何从时间戳创建ISODate的人:
ts = time.time()
isodate = datetime.datetime.fromtimestamp(ts, None)这将创建不带时区的datetime对象。当插入到MongoDB中时,它将被转换为正确的ISODate()。
另外,我强烈推荐使用Python TimeTransitionsImage。注意,这里的结构被命名为元组(相当于C中的tuple )。还要注意,元组字段与C中的对应字段不同,即使命名相同(例如,tm_wday以星期一而不是星期日开始)。
发布于 2018-06-27 05:51:14
实际上,这也不起作用。当你尝试使用utcfromtimestamp或fromtimestamp时,程序会错误地指出它需要一个浮点数。只需将字符串解析为date time对象并直接在Mongodb中使用即可。过滤器
from_dt = datetime.strptime('2018-04-01','%Y-%m-%d')
#from_dts = datetime.utcfromtimestamp(from_dt)
to_dt = datetime.strptime('2018-04-30','%Y-%m-%d')
#to_dts = datetime.utcfromtimestamp(to_dt)
filterCondition = {
"LastLogin" : { "$lte" : to_dt},
"LastLogin" : { "$gte" : from_dt}
}然后
db[(colName)].find({ "<colName>" : filterCondition }) 将会起作用。
https://stackoverflow.com/questions/7651064
复制相似问题