Необходимо выполнить запрос в базе данных mongodb, в результате чего будет получен набор результатов по временному диапазону. Я использую пимонго. Мой запрос выглядит следующим образом:Запрос по временному диапазону в mongodb с использованием pymongo
query = {"$and": [
{"id_node": id_node}
{"port": port},
{"datetime": {"$gte": self.hourBegin}}
{"datetime": {"$lte": self.now}}
]}
listResults = db.mycollection.find (query)
Я также попробовал этот путь:
query = {"id_node": int(id_node)
"port": port,
"datetime": {"$gte": self.hourBegin, "$lte": self.now}}
listResults = db.mycollection.find (query)
Но результат всегда пустой. Протестировано непосредственно в 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", "sensor" : "1" }
{ "_id" : ObjectId("543618c6e7b9914c3526612c"), "lab" : "2", "port" : "A1", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:06Z"), "valor" : "22.00", "sensor" : "2" }
{ "_id" : ObjectId("543618c6e7b9914c3526612d"), "lab" : "2", "port" : "A0", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:06Z"), "valor" : "0", "sensor" : "1" }
{ "_id" : ObjectId("543618c7e7b9914c35266130"), "lab" : "2", "port" : "A1", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:08Z"), "valor" : "22.00", "sensor" : "2" }
{ "_id" : ObjectId("543618c7e7b9914c35266131"), "lab" : "2", "port" : "A0", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:08Z"), "valor" : "0", "sensor" : "1" }
{ "_id" : ObjectId("543618c7e7b9914c35266134"), "lab" : "2", "port" : "A1", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:10Z"), "valor" : "22.00", "sensor" : "2" }
{ "_id" : ObjectId("543618c7e7b9914c35266135"), "lab" : "2", "port" : "A0", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:10Z"), "valor" : "0", "sensor" : "1" }
{ "_id" : ObjectId("543618c7e7b9914c35266138"), "lab" : "2", "port" : "A1", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:12Z"), "valor" : "22.00", "sensor" : "2" }
{ "_id" : ObjectId("543618c7e7b9914c35266139"), "lab" : "2", "port" : "A0", "id_node" : 1, "datetime" : ISODate("2014-09-26T18:28:12Z"), "valor" : "0", "sensor" : "1" }
удалите пробел в операторе запроса. Используйте '$ gte' вместо' $ gte'. То же самое для '$ lte'. –
также использует второй вариант запроса, но ваш объект запроса недействителен. В поле 'id_no' отсутствует': '. –
Можете ли вы обновить свой вопрос, включив образец документа, который вы ожидаете включить в результаты? – JohnnyHK