[英]How to get the number of values from a database field for the last 10 days
我有一個數據庫,其中包含 ID、名稱、單位、日期和時間等字段。
例如:id:01 name:water unit:kel date&time: 2020-03-21 13:26:25.885758
像這樣,我的數據庫中有大約 50 個具有不同日期和時間的數據元素。
我嘗試生成從今天開始的最后 10 天,但我不知道如何為數據庫的日期和時間執行此操作。
我需要日期和時間的最后 10 天的計數。
例如,如果我有 50 條記錄,並且從今天到過去 10 天有 12 條記錄可用,則我需要 12 的結果。
如何在 pymongo 中做到這一點?
您可以使用 datetime 庫獲取今天的日期時間,然后將其用作查詢的輸入
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
先前的答案start
和end
是相反的,但概念是正確的。 OP也想要計數。 所以我們將把它和單個項目放在一起,讓我們假設沒有自然排序,所以我們將增強使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.