簡體   English   中英

如何從過去 10 天的數據庫字段中獲取值的數量

[英]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

先前的答案startend是相反的,但概念是正確的。 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM