如何使用pymongo在mongodb中查询日期?

触摸屏

我正在尝试在mongodb中执行查询日期,但结果始终为空。我的查询如下:

//in the begin code
def __init__(self):
    self.now = datetime.now()
    self.db = conexaoMongo()
    self.horaInicio = self.now - timedelta(minutes=1)

def resultadoConsulta(self, modo, porta, id_node):
    #print "Porta e No ", porta, id_node
    resultadoMongo = []
    mediaFinal = False      
    try:

        json = {'id_no': int(id_node), 'datahora': {'$gte': self.horaInicio, '$lt': self.now}, 'porta': porta}

        print "COnsulta a ser realizada: ", json
        resultadoMongo = self.db.queryMongoOne(json) 

//变量resultaMongo返回空。

Obs:我也尝试不使用.isoformat(),当我直接放入mongodb时,只有添加ISODate才返回结果。因此不会返回结果:

db.inoshare.find( {'id_no': 1, 'datahora': {'$lte': '2014-09-24T07:52:04.945306', '$gte': '2014-09-24T07:51:04.958496'}, 'porta': 'A0'})

更重要的是,如果您编辑返回:

db.inoshare.find( {'id_no': 1, 'datahora': {'$lte': ISODate('2014-09-24T07:52:04.945306'), '$gte': ISODate('2014-09-24T07:51:04.958496')}, 'porta': 'A0'})

这是数据库中的记录序列:

    { "_id" : ObjectId("5435be9ce7b9916e02ed2cb5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:05Z"), "valor" : "917", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cb9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:07Z"), "valor" : "932", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cbd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:09Z"), "valor" : "189", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cc1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:11Z"), "valor" : "853", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cc5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:13Z"), "valor" : "202", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cc9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:15Z"), "valor" : "398", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2ccd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:17Z"), "valor" : "947", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cd1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:19Z"), "valor" : "57", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cd5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:21Z"), "valor" : "395", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cd9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:23Z"), "valor" : "941", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2cdd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:25Z"), "valor" : "208", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2ce1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:27Z"), "valor" : "186", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2ce5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:29Z"), "valor" : "848", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2ce9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:31Z"), "valor" : "571", "sensor" : "1" }
    { "_id" : ObjectId("5435be9ce7b9916e02ed2ced"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:33Z"), "valor" : "351", "sensor" : "1" }
    { "_id" : ObjectId("5435be9de7b9916e02ed2cf1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:35Z"), "valor" : "558", "sensor" : "1" }
    { "_id" : ObjectId("5435be9de7b9916e02ed2cf5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:37Z"), "valor" : "449", "sensor" : "1" }
    { "_id" : ObjectId("5435be9de7b9916e02ed2cf9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:39Z"), "valor" : "768", "sensor" : "1" }
    { "_id" : ObjectId("5435be9de7b9916e02ed2cfd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:41Z"), "valor" : "542", "sensor" : "1" }
    { "_id" : ObjectId("5435be9de7b9916e02ed2d01"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:43Z"), "valor" : "763", "sensor" : "1" }

如果我打印python的json变量,则会看到类似以下内容的内容:

{'id_no': 1, 'datahora': {'$gte': datetime.datetime(2014, 9, 24, 8, 21, 38, 527653), '$lt': datetime.datetime(2014, 9, 24, 8, 22, 36, 677022)}, 'porta': 'A1'}

我的Mongndb Class连接是:

#!/usr/bin/python
from pymongo import MongoClient

class conexaoMongo:

    def __init__(self):
        self.conditions = []        
        self.client = MongoClient("127.0.0.1", 27017, safe=True)
        self.db = self.client['inoshare']
        self.ino = self.db.inoshare     


    def queryMongo(self, param1, param2=None, param3=None): 

        try:
            if param2 != None:
                results = self.ino.find(param1, param2)
            elif param3 != None:
                results = self.ino.find(param1, param2, param3)
            else:               
                results = self.ino.find(param1)

            #print "Total de registros ", results.count()

            for post in results:
                #print post
                self.conditions.append(post)

            return self.conditions

        except:
            print "Erro ao executar a query"
安泽尔

@Joni是正确的,您需要使用datetime

from datetime import datetime
from pymongo import Connection

# i have updated and included the complete code 
client = Connection('localhost', 27017)
db = client['database'] # your database name
inoshare = db['inoshare']


# convert your date string to datetime object
start = datetime(2014, 9, 24, 7, 51, 04)
end = datetime(2014, 9, 24, 7, 52, 04)

inoshare.find( {'id_no': 1, 'datahora': {'$lt': end, '$gte': start}, 'porta': 'A0'})
<pymongo.cursor.Cursor at 0x7f9aafd64a90>

inoshare.find_one( {'id_no': 1, 'datahora': {'$lt': end, '$gte': start}, 'porta': 'A0'})

{u'_id': ObjectId('5435be9ce7b9916e02ed2cb5'),
 u'datahora': datetime.datetime(2014, 9, 24, 7, 51, 5),
 u'id_no': 1.0,
 u'lab': u'2',
 u'porta': u'A0',
 u'sensor': u'1',
 u'valor': u'917'}

显然我可以成功返回结果。也许您的数据已损坏,或者您应该发布所有代码供我们审核

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用pymongo更新Mongodb中的多个值?

来自分类Dev

Meteorjs Mongodb如何使用Moment.js查询日期

来自分类Dev

无法使用pymongo查询Mongodb

来自分类Dev

使用pymongo在mongodb中按时间范围查询

来自分类Dev

如何将MongoDB查询的JavaScript部分移植到PyMongo

来自分类Dev

如何使用mgo和Go查询日期范围的MongoDB?

来自分类Dev

流星:如何使用Momentjs在Mongodb中添加和查询日期

来自分类Dev

使用PyMongo在MongoDB中查询化合物_id的时间范围

来自分类Dev

使用pymongo查询mongodb

来自分类Dev

如何在pymongo中编写mongodb查询

来自分类Dev

如何使用pymongo在mongodb查询中实现包含{m,n}的正则表达式?

来自分类Dev

在MongoDB的客户端pymongo中编写查询,该查询可将字符串的一部分即时转换为日期

来自分类Dev

使用pymongo中的一个查询匹配MongoDB中的多个值

来自分类Dev

如何使用pymongo在mongodb上使用多个查询?

来自分类Dev

使用pymongo查询mongoDB(对mongo / pymongo来说是全新的)

来自分类Dev

使用pyMongo在Flask中获取MongoDB数据

来自分类Dev

如何使用pymongo更新Mongodb中的多个值?

来自分类Dev

如何使用pymongo从mongodb获取文件对象?

来自分类Dev

无法使用pymongo查询Mongodb

来自分类Dev

我如何查询mongodb / pymongo中的嵌入对象字段名称?

来自分类Dev

使用R在日期查询mongoDB

来自分类Dev

如何将MongoDB查询的JavaScript部分移植到PyMongo

来自分类Dev

根据pymongo中的日期条件从mongodb检索数据

来自分类Dev

在MongoDB的客户端pymongo中编写查询,该查询可将字符串的一部分即时转换为日期

来自分类Dev

使用Java在mongodb中按日期查询

来自分类Dev

如何使用 pymongo 在 mongoDB 中创建通配符文本索引?

来自分类Dev

使用 pymongo 在 Mongodb 中查找空记录

来自分类Dev

如何使用 PyMongo 识别 MongoDB 文本索引

来自分类Dev

使用 pymongo 在 MongoDB 中插入文档

Related 相关文章

  1. 1

    如何使用pymongo更新Mongodb中的多个值?

  2. 2

    Meteorjs Mongodb如何使用Moment.js查询日期

  3. 3

    无法使用pymongo查询Mongodb

  4. 4

    使用pymongo在mongodb中按时间范围查询

  5. 5

    如何将MongoDB查询的JavaScript部分移植到PyMongo

  6. 6

    如何使用mgo和Go查询日期范围的MongoDB?

  7. 7

    流星:如何使用Momentjs在Mongodb中添加和查询日期

  8. 8

    使用PyMongo在MongoDB中查询化合物_id的时间范围

  9. 9

    使用pymongo查询mongodb

  10. 10

    如何在pymongo中编写mongodb查询

  11. 11

    如何使用pymongo在mongodb查询中实现包含{m,n}的正则表达式?

  12. 12

    在MongoDB的客户端pymongo中编写查询,该查询可将字符串的一部分即时转换为日期

  13. 13

    使用pymongo中的一个查询匹配MongoDB中的多个值

  14. 14

    如何使用pymongo在mongodb上使用多个查询?

  15. 15

    使用pymongo查询mongoDB(对mongo / pymongo来说是全新的)

  16. 16

    使用pyMongo在Flask中获取MongoDB数据

  17. 17

    如何使用pymongo更新Mongodb中的多个值?

  18. 18

    如何使用pymongo从mongodb获取文件对象?

  19. 19

    无法使用pymongo查询Mongodb

  20. 20

    我如何查询mongodb / pymongo中的嵌入对象字段名称?

  21. 21

    使用R在日期查询mongoDB

  22. 22

    如何将MongoDB查询的JavaScript部分移植到PyMongo

  23. 23

    根据pymongo中的日期条件从mongodb检索数据

  24. 24

    在MongoDB的客户端pymongo中编写查询,该查询可将字符串的一部分即时转换为日期

  25. 25

    使用Java在mongodb中按日期查询

  26. 26

    如何使用 pymongo 在 mongoDB 中创建通配符文本索引?

  27. 27

    使用 pymongo 在 Mongodb 中查找空记录

  28. 28

    如何使用 PyMongo 识别 MongoDB 文本索引

  29. 29

    使用 pymongo 在 MongoDB 中插入文档

热门标签

归档