MongoDb根据时间戳找到收集文档 [英] MongoDb find collection document based on timestamp
问题描述
我的用户资料数据为:
{u'DOB':None,
u'_id' :ObjectId('5906f3b .....'),
u'active':0,
u'bfunc':0,
u'city':None,
u'contact':u'',
u'创建': 1493627839,
u'email':u'mymail@demo.c
u'facebook_id':u'',
u'fburl':None,
u'firstname':u'',
u'gender':None,
u' group_id':None}
我想根据<$ c $找到最近4小时之间的所有数据当前创建的值
是字段。
1493627839 即 2017-05-01 14:07:19
我想在过去4小时内找到 lessthan
当前时间和 greaterthan
。
如何找到基于日期时间的值。
我应该将当前时间转换为时间戳
,然后查找或者别的什么?
我这样做,但它返回0作为我的值存储在时间戳
格式。
value = []
cursor = collection.find({
'created':{
$ date:datetime.datetime.now(),
$ b
我如何查询它?
我将值存储在 php
中,但是这个查询是在'python 2.7'中触发的。
编辑:
value = []
cursor = collection.find({
'created':{
$ lt:datetime.datetime.now(),
$ gte:datetime.datetime.now() - datetime.timedelta(days = 5)
}
})
bu t仍然发现查询是空的
您正在使用相反的条件,使用如下
timenow = datetime.datetime.now();
ltunix = timenow.strftime('%s'); //转换为时间戳
gteTime = timenow- datetime.timedelta(hours = 4);
getTimeUnix = gteTime.strftime('%s'); //转换为时间戳
cursor = collection.find({
'created':{
$ lt:ltunix,
$ gte:getTimeUnix
}
})
I have user profile data as:
{u'DOB': None,
u'_id': ObjectId('5906f3b.....'),
u'active': 0,
u'bfunc': 0,
u'city': None,
u'contact': u'',
u'created': 1493627839,
u'email': u'mymail@demo.c
u'facebook_id': u'',
u'fburl': None,
u'firstname': u'',
u'gender': None,
u'group_id': None}
I want to find all data between last 4 hrs based on created
field.
Current created value
is 1493627839
which is 2017-05-01 14:07:19
I want to find lessthan
current time and greaterthan
last 4 hrs.
How could i find value based on datetime.
Should i convert current time into timestamp
then find or something else?
I did this but it returned 0 as my values stored in timestamp
format.
value = []
cursor = collection.find({
'created': {
"$gte": datetime.datetime.now(),
"$lt": datetime.datetime.now() - datetime.timedelta(days=5)
}
})
how could i query it.
Note: I am storing values in php
but this query is fired in 'python 2.7'.
Edit:
value = []
cursor = collection.find({
'created': {
"$lt": datetime.datetime.now(),
"$gte": datetime.datetime.now() - datetime.timedelta(days=5)
}
})
but still find query is empty
You are using opposite condition , use as follow
timenow=datetime.datetime.now();
ltunix = timenow.strftime('%s'); //convert to timestamp
gteTime= timenow- datetime.timedelta(hours=4);
getTimeUnix=gteTime.strftime('%s'); //convert to timestamp
cursor = collection.find({
'created': {
"$lt": ltunix,
"$gte": getTimeUnix
}
})
这篇关于MongoDb根据时间戳找到收集文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!