【问题标题】:PyMongo, handling fields with time relative to the database timePyMongo,处理时间相对于数据库时间的字段
【发布时间】:2015-05-08 21:18:10
【问题描述】:

假设我有一个文档字段名称“creation_time”。我想用数据库当前时间初始化它的值,而不是使用客户端机器时间:

datetime.datetime.utcnow()

如何使用 PyMongo 实现这一点?

另外有没有办法在字段初始化的时候进行操作,例如:

“creation_time”:magic_get_mongodb_time() + 10 小时

作为旁注,我可以处理 unix 时间戳,而不是必要的日期时间格式。

编辑:还不能对日期进行操作(2015 年 5 月):https://jira.mongodb.org/browse/SERVER-3174

【问题讨论】:

  • 值得一提的是,在某些时候,使用eval command 将是在服务器上运行任意 JS 代码的答案。但从 MongoDB 3.0 开始,它已被弃用。

标签: python mongodb pymongo


【解决方案1】:

您可以在更新中使用 MongoDB 的 $currentdate 运算符,这会将字段的值设置为当前日期,可以是 Datetimestamp。默认类型是日期。

db = con['test']            
test = db.test
test.update({}, { 
    '$currentDate': {
        'creation_time': { '$type': 'timestamp' }
    }
},upsert=True)

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 2016-07-25
    • 1970-01-01
    • 2019-05-11
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    相关资源
    最近更新 更多