gpt4 book ai didi

python - RethinkDB - 更新时如何过滤嵌套对象中的数组?

转载 作者:行者123 更新时间:2023-11-30 22:39:41 26 4
gpt4 key购买 nike

使用 RethinkDB,如何更新嵌套对象中的数组以便过滤掉某些值?

考虑以下程序,我想知道如何编写一个更新查询,从“dinners”表文档中的 votes 子对象中包含的数组中过滤掉值 2:

import rethinkdb as r
from pprint import pprint


with r.connect(db='mydb') as conn:
pprint(r.table('dinners').get('xxx').run(conn))
r.table('dinners').insert({
'id': 'xxx',
'votes': {
'1': [1, 2, ],
},
}, conflict='replace').run(conn)

# How can I update the 'xxx' document so that the value 2 is
# filtered out from all arrays contained in the 'votes' sub object?

最佳答案

您可以将常用的过滤方法与对象强制一起使用:

def update_dinner(dinner):
return {
'votes': dinner['votes']
.keys()
.map(lambda key: [
key,
dinner['votes'][key].filter(lambda vote_val: vote_val.ne(2)),
])
.coerce_to('object')
}

r.table('dinners').update(update_dinner).run(conn)

关于python - RethinkDB - 更新时如何过滤嵌套对象中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43067578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com