如果我
需要一些复杂的路径,如何使用日期时间对象?例如,我想增加位于jumps/datetime.date()/country code
的计数器:
database['data'].update_one(
{'some_data' : 'asdasd'},
{'$inc' : {'jumps.{}.{}'.format(datetime.now().date(), "US") : 1}},
)
此代码将起作用,但是(如预期的那样(有一个字符串而不是日期时间对象:
"jumps" : {
"2017-04-14" : {
"US" : 4
}
}
不可能将日期对象存储为 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