我正在尝试在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)
Run Code Online (Sandbox Code Playgroud)
//变量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'})
Run Code Online (Sandbox Code Playgroud)
如果您编辑返回更多信息:
db.inoshare.find( {'id_no': 1, 'datahora': {'$lte': ISODate('2014-09-24T07:52:04.945306'), '$gte': ISODate('2014-09-24T07:51:04.958496')}, 'porta': …Run Code Online (Sandbox Code Playgroud) 需要在数据库mongodb上执行查询,以按时间范围生成一组结果。我正在使用pymongo。我的查询如下:
query = {"$and": [
{"id_node": id_node}
{"port": port},
{"datetime": {"$gte": self.hourBegin}}
{"datetime": {"$lte": self.now}}
]}
listResults = db.mycollection.find (query)
Run Code Online (Sandbox Code Playgroud)
我也尝试过这种方式:
query = {"id_node": int(id_node)
"port": port,
"datetime": {"$gte": self.hourBegin, "$lte": self.now}}
listResults = db.mycollection.find (query)
Run Code Online (Sandbox Code Playgroud)
但是结果总是空的。直接在mongodb中测试,但结果为空。我确定数据存在于数据库中,且该时间范围是我正在研究的时间范围。
可能的结果列表:
{ "_id" : ObjectId("543618c6e7b9914c35266128"), "lab" : "2", "port" : "A1", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:04Z"), "valor" : "22.00", "sensor" : "2" }
{ "_id" : ObjectId("543618c6e7b9914c35266129"), "lab" : "2", "port" : "A0", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:04Z"), "valor" : "0", …Run Code Online (Sandbox Code Playgroud)