gpt4 book ai didi

rethinkdb - 如何就地修改数组字段?

转载 作者:行者123 更新时间:2023-12-04 14:12:18 24 4
gpt4 key购买 nike

假设我有这个对象:

{
"id": "1a48c847-4fee-4968-8cfd-5f8369c01f64" ,
"sections": [
{
"id": 0 ,
"title": "s1"
} ,
{
"id": 1 ,
"title": "s2"
} ,
{
"id": 2 ,
"title": "s3"
}
]
}

如何直接将第二个标题“s2”更改为其他值?不加载对象并再次保存?谢谢。

最佳答案

更新加changeAt学期:

r.table('blog').get("1a48c847-4fee-4968-8cfd-5f8369c01f64").update(function(row){
return {
sections: row('sections').changeAt(1,
row('sections')(1).merge({title: "s2-modified"}))
}
}

如果您已经知道要更改的项目的索引,则上述内容很好。如果需要查找索引,然后更新它,可以使用 .offsetsOf命令来查找你想要的元素的索引:

r.table('table').get("1a48c847-4fee-4968-8cfd-5f8369c01f64").update(function(row){
return row('sections').offsetsOf(function(x){
return x('title').eq('s2')
})(0).do(function(index){
return {
sections: row('sections').changeAt(index,
row('sections')(index).merge({title: "s2-modified"}))
}
})
})

编辑:修改答案以使用 changeAt

关于rethinkdb - 如何就地修改数组字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508480/

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