1

我对 python 中的 rethinkdb 请求有一个小问题。

我有一个这样的嵌套文档:

{'id': XX, 'markets_tracking': {'market_name_1': { 'latest_update': (timestamp), 'market_data': { 'type_1': {'place1': XX, 'place2': XX}, {'type_2': {'place1':XX, 'place2': XX}}}}}}

该文档由一名或多名工作人员经常更新(在 500 毫秒和 2-3 秒之间)。它是针对特定类型更新的位置值。为了确保插入最新的值,我想在更新位置值和同时,如果我更新它,我想更新 lastest_update 值...

目前,我能够创建这样的条件更新:

r.table('markets_us').get('xxx').update(lambda market:    r.branch(market['market_tracking']['market_name_1']['latest_update'] < time.time(), {'market_tracking':{'type_1':{'place1':XX}}}, {})).run()

现在我只需要同时添加“最新更新”字段的更新,如果可能的话..

谢谢,

4

1 回答 1

0

只需添加latest-update到对象就可以了。我还认为我发现了一个错误,因为您忘记包含market_dataandmarket_name_1键。

r.table('markets_us').get('xxx').update(
   lambda market: r.branch(market['market_tracking']['market_name_1']['latest_update'] < time.time(), 
   {
    'market_tracking':{
       'market_name_1': {
         'market_data': {'type_1':{'place1':XX}},
         'latest_update': time.time(),
       }
     },
   }, 
   {})).run()

让我知道这是否适合您!

于 2016-05-12T17:19:52.360 回答