基于时间戳MongoDB中找到集合文件(MongoDb find collection docume

2019-11-04 09:26发布

我有用户配置文件数据:

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

我想找到基于去年4个小时之间的所有数据created领域。

当前created value1493627839这是2017-05-01 14:07:19

我想找到lessthan当前的时间和greaterthan最后4个小时。 我怎么能找到基于datetime值。

我应该转换现在时刻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)
        }
    })

但仍发现查询为空

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


文章来源: MongoDb find collection document based on timestamp