Как получить количество значений из поля базы данных за последние 10 дней - PullRequest
0 голосов
/ 21 марта 2020

У меня есть база данных, в которой есть поля, такие как id, имя, единица измерения, дата и время.

Например: id: 01 name: единица измерения воды: kel Дата и время: 2020-03-21 13:26: 25.885758

Таким образом, у меня в базе данных около 50 элементов данных с разными датой и временем.

Я пытался сгенерировать последние 10 дней с сегодняшнего дня, но я не знаю, как это сделать для дата и время базы данных.

Мне нужен счет за последние 10 дней даты и времени.

Например, если у меня есть 50 записей и 12 записей доступны с сегодняшнего дня до последних 10 дней, мне нужно результат 12.

Как это сделать в pymon go?

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Предыдущий ответ start и end поменялись местами, но концепция верна. ОП тоже хотел посчитать. Таким образом, мы будем обувать это и отдельные предметы, и давайте предположим, что нет естественного порядка, поэтому мы расширим ответ, используя sort() и limit():

from datetime import datetime, timedelta
import pymongo

client = pymongo.MongoClient("mongodb://yourConnectionString")
coll   = client.yourDB.yourCollection

end = datetime.now()
start = end - timedelta(days=10)

start = end - timedelta(days=10)

#  This is the count:                                                                                               
count = coll.find({'dt': {'$gte': start, '$lt': end}}).count()
print "count",count

#  To show the material, sorted recent-first and with a limit just for fun:                                         
for doc in coll.find({'dt': {'$gte': start, '$lt': end}}).sort('dt',-1).limit(6):
    print doc
0 голосов
/ 21 марта 2020

Вы можете получить сегодняшнюю дату и время, используя библиотеку даты и времени, а затем использовать ее в качестве входных данных для вашего запроса

from datetime import datetime, timedelta

start = datetime.now()
end = start - timedelta(days=10)

for doc in db.your_collection.find({'date_time': {'$gte': start, '$lt': end}}):
    print doc
...