gpt4 book ai didi

RethinkDB:​​如何进行真正的 upsert - 在更新失败时插入新文档?

转载 作者:行者123 更新时间:2023-12-04 20:08:57 25 4
gpt4 key购买 nike

我想在更新失败时插入新文档 - 有没有办法做到这一点?现在 RethinkDB 只允许我通过插入命令中的 {upsert: true} 在插入失败时更新文档。

最佳答案

您可以使用 replace带有分支和显式合并。
replace就像 update ,除了它完全替换文档而不是与其合并。以下是等效的(在 Ruby 代码中):

table.get(id).update{|row| {a: row['a']+1}}
table.get(id).replace{|row| row.merge({a: row['a']+1})}

因此,如果您想进行“更新”,或者在没有行的情况下插入一行,您可以这样做:
table.get(id).replace {|row|
r.branch(
row.eq(nil),
INSERT_OBJECT,
row.merge(UPDATE_OBJECT))
}

关于RethinkDB:​​如何进行真正的 upsert - 在更新失败时插入新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109043/

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