MongoDb根据时间戳查找收集文档

时间:2017-05-05 11:06:57

标签: php python mongodb find timestamp

我的用户个人资料数据为:

    {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}

我希望根据created字段查找过去4小时之间的所有数据。

当前created value14936278392017-05-01 14:07:19

我想找到lessthan当前时间和greaterthan过去4小时。 我怎样才能根据日期时间找到价值。

我应该将当前时间转换为timestamp然后查找或其他内容吗?

我做了这个,但它返回0,因为我的值以timestamp格式存储。

   value = []
    cursor = collection.find({
        'created': {
            "$gte": datetime.datetime.now(),
            "$lt": datetime.datetime.now() - datetime.timedelta(days=5)
        }
    })

我怎么能查询它。

注意:我将值存储在php中,但此查询是在' python 2.7'中触发的。

编辑:

   value = []
    cursor = collection.find({
        'created': {
            "$lt": datetime.datetime.now(),
            "$gte": datetime.datetime.now() - datetime.timedelta(days=5)
        }
    })

但仍然发现查询为空

1 个答案:

答案 0 :(得分:1)

您正在使用相反的条件,请按以下方式使用

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
            }
        })