我只需要我的一個集合有一個 TTL 索引。
檔案指出我應該做這樣的事情:
db.log_events.insert( { "expireAt": new Date('July 22, 2013 14:00:00'), "logEvent": 2, "logMessage": "Success!" } )
帶有expireAt欄位索引。
我有作為輸入 aint代表自紀元以來的時間(以毫秒為單位),我需要創建上述日期。
如何使用整數datetime和pymongo從millisSinceEpoch整數構建這樣的日期?
我找到了很多答案,但我不知道TTL索引是否適用于與上面顯示的日期格式不同的任何日期格式(來自檔案)。
uj5u.com熱心網友回復:
使用 轉換您的時間戳datetime.datetime.fromtimestamp(),記住這需要以秒為單位的輸入。您可能需要除以 1,000 才能獲得毫秒數。
https://docs.python.org/3/library/datetime.html#datetime.date.fromtimestamp
示例代碼,與 POSIX 時間戳相互轉換:
import pymongo
import datetime
client = pymongo.MongoClient()
db = client['mydatabase']
dt = datetime.datetime.utcnow()
ts = dt.timestamp()
print(ts)
db.mycollection.insert_one({'date': datetime.datetime.fromtimestamp(ts)})
print(list(db.mycollection.find({'date': dt}, {'_id': 0})))
印刷:
1635066038.917683
[{'date': datetime.datetime(2021, 10, 24, 10, 0, 38, 917000)}]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335961.html
