2017-04-14 57 views
1

如何在需要复杂路径的情况下使用datetime对象?例如,我要增加计数器,它位于jumps/datetime.date()/country code在Pymongo查询路径中使用datetime的最佳做法?

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

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

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

如何你保存你的数据,哪里有一些关键字日期对象?你能举一个例子吗? –

回答

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