如果我需要一些复杂的路径,如何使用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
}
}
答案 0 :(得分:2)
将日期对象存储为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