我对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}}}}}}
本文档由一名或多名工作人员经常更新(在500ms到2-3s之间)。它是针对特定类型更新的位置值。为了确保插入最新的值,我想对字段'lastest_update'执行检查(以确保我提取的新值比rethinkdb中的值更新),然后更新它的位置值和同时如果我更新它,我想更新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()
现在我只需要在同一时间添加“最新更新”字段的更新,如果可能的话......
谢谢,
答案 0 :(得分:0)
只需将latest-update
添加到对象就可以了。我还认为我发现了一个错误,因为您忘记包含market_data
和market_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()
让我知道这是否适合你!