<tfoot id='UTQVG'></tfoot>

    • <bdo id='UTQVG'></bdo><ul id='UTQVG'></ul>

    <small id='UTQVG'></small><noframes id='UTQVG'>

    1. <legend id='UTQVG'><style id='UTQVG'><dir id='UTQVG'><q id='UTQVG'></q></dir></style></legend>
      <i id='UTQVG'><tr id='UTQVG'><dt id='UTQVG'><q id='UTQVG'><span id='UTQVG'><b id='UTQVG'><form id='UTQVG'><ins id='UTQVG'></ins><ul id='UTQVG'></ul><sub id='UTQVG'></sub></form><legend id='UTQVG'></legend><bdo id='UTQVG'><pre id='UTQVG'><center id='UTQVG'></center></pre></bdo></b><th id='UTQVG'></th></span></q></dt></tr></i><div id='UTQVG'><tfoot id='UTQVG'></tfoot><dl id='UTQVG'><fieldset id='UTQVG'></fieldset></dl></div>

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

      时间:2023-09-14
        <tbody id='zfqur'></tbody>
        <bdo id='zfqur'></bdo><ul id='zfqur'></ul>
        <i id='zfqur'><tr id='zfqur'><dt id='zfqur'><q id='zfqur'><span id='zfqur'><b id='zfqur'><form id='zfqur'><ins id='zfqur'></ins><ul id='zfqur'></ul><sub id='zfqur'></sub></form><legend id='zfqur'></legend><bdo id='zfqur'><pre id='zfqur'><center id='zfqur'></center></pre></bdo></b><th id='zfqur'></th></span></q></dt></tr></i><div id='zfqur'><tfoot id='zfqur'></tfoot><dl id='zfqur'><fieldset id='zfqur'></fieldset></dl></div>

            • <tfoot id='zfqur'></tfoot>

            • <legend id='zfqur'><style id='zfqur'><dir id='zfqur'><q id='zfqur'></q></dir></style></legend>

              <small id='zfqur'></small><noframes id='zfqur'>

                本文介绍了如何使用 pymongo 在 mongodb 中查询日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

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

                I'm trying to perform a query date in mongodb, but the result is always empty. My query is as follows:

                //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返回空.

                //variable resultaMongo return empty.

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

                Obs: I also tried without using .isoformat() When I put in mongodb directly, only return results if I add ISODate. So does not return results:

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

                如果您编辑退货则更是如此:

                More so if you edit returns:

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

                这是数据库中的一系列记录:

                This is a sequence of records in the database:

                    { "_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 变量,我会看到类似:

                if i print the json variable of python, i see something like:

                {'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 类连接是:

                My Mongndb Class connection is:

                #!/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.

                @Joni is correct, you need to use 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'}
                

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

                clearly I can successfully return results. Perhaps your data is corrupt, or you should post all your code for us to review

                这篇关于如何使用 pymongo 在 mongodb 中查询日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:pymongo 中的快速或批量更新 下一篇:从哈希键中检索不同的值 - DynamoDB

                相关文章

                最新文章

                • <bdo id='hWApk'></bdo><ul id='hWApk'></ul>
              1. <small id='hWApk'></small><noframes id='hWApk'>

                  <tfoot id='hWApk'></tfoot>

                  <legend id='hWApk'><style id='hWApk'><dir id='hWApk'><q id='hWApk'></q></dir></style></legend>

                  <i id='hWApk'><tr id='hWApk'><dt id='hWApk'><q id='hWApk'><span id='hWApk'><b id='hWApk'><form id='hWApk'><ins id='hWApk'></ins><ul id='hWApk'></ul><sub id='hWApk'></sub></form><legend id='hWApk'></legend><bdo id='hWApk'><pre id='hWApk'><center id='hWApk'></center></pre></bdo></b><th id='hWApk'></th></span></q></dt></tr></i><div id='hWApk'><tfoot id='hWApk'></tfoot><dl id='hWApk'><fieldset id='hWApk'></fieldset></dl></div>