如何在查询中使用数据库的当前时间(因为我的Python脚本在具有不同时钟的另一台计算机上运行)?

时间:2019-07-02 11:15:48

标签: pymongo

我想过滤所有早于60秒的文档,以便可以处理它们(然后将其删除)。

我的Python代码在多台计算机上运行,​​因此它们的时钟可能与数据库的时钟不匹配(或彼此不匹配)。

我使用以下命令将当前时间(使用数据库时钟)更新为一个字段:

{'$currentDate': {'last_update': true}}

我想在PyMongo中执行以下操作以获取60秒之前的文档:

db.getCollection('my_collection').find({
    "last_update": {
    "$lt": new Date(new Date().getTime() - 60000)
  }
})

我不知道如何用PyMongo编写new Date(...部分。我尝试将其视为字符串,但这也不起作用。

此外,我不想创建带有'expireAfterSeconds'的TTL索引来自动删除文档,因为我想查找文档并对它们执行一些操作,然后再删除它们。

大多数文章都展示了如何使用Python代码(例如datetime.utcnow())中的时间,但这将是不准确的,因为某些机器可能很快,而另一些机器可能很慢。

目前,我们的临时解决方法是使用ntpd服务同步时间。

0 个答案:

没有答案