如何使用 pymongo 在 mongoDB 中为 Date 插入特定的日期格式?

How to insert specific date format for Date in mongoDB with pymongo?

我只需要我的 collections 之一有一个 TTL 索引。

文档指出我应该这样做:

db.log_events.insert( { "expireAt": new Date('July 22, 2013 14:00:00'), "logEvent": 2, "logMessage": "Success!" } )

expireAt 字段上有索引。
我有一个 int 作为输入,表示自纪元以来的时间(以毫秒为单位),我需要创建上述日期。

如何从 millisSinceEpoch 整数中用 datetimepymongo 构建这样的日期?

我找到了很多答案,但我不知道 TTL 索引是否适用于不同于上面显示的日期格式(来自文档)。

使用 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)}]