【问题标题】:Best practice for using datetime in Pymongo query path?在 Pymongo 查询路径中使用日期时间的最佳实践?
【发布时间】:2017-09-10 19:52:56
【问题描述】:

如果我需要一些复杂的路径,如何使用 datetime 对象?例如我想增加位于jumps/datetime.date()/country code的计数器:

database['data'].update_one(
                {'some_data' : 'asdasd'},
                {'$inc' : {'jumps.{}.{}'.format(datetime.now().date(), "US") : 1}},
            )

此代码可以工作,但(如预期的那样)有一个字符串而不是 datetime 对象:

"jumps" : {
    "2017-04-14" : {
        "US" : 4
    }
}

【问题讨论】:

  • 如何保存数据,其中一些键是日期对象?你能举个例子吗?

标签: python mongodb datetime pymongo


【解决方案1】:

不可能将日期对象作为键存储在 mongodb 文档中。 此外,您不应该将值用作键,因为您不能在查询或索引中使用键。如果您更改文档的结构并简化它会更好。

类似的东西:

"jumps" : {[
    {'date': ISODate('2017-04-14'), "US" : 4},
    {'date': ISODate('2017-04-14'), "RU" : 9}
]}

或者您可以创建新集合jumps,其中将包含文档:

{'date': ISODate('2017-04-14'), "US" : 4}
{'date': ISODate('2017-04-14'), "RU" : 9}

或其他结构

看这篇文章https://derickrethans.nl/mongodb-arbitrary-key-names.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 2018-02-28
    • 2021-09-07
    相关资源
    最近更新 更多