MongoDb根据时间戳找到收集文档 [英] MongoDb find collection document based on timestamp

查看:149
本文介绍了MongoDb根据时间戳找到收集文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的用户资料数据为:

  {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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆