gpt4 book ai didi

javascript - 如何编写处理空结果的 RethinkDB 合并查询

转载 作者:行者123 更新时间:2023-11-30 11:57:57 25 4
gpt4 key购买 nike

我如何为一个文档编写一个 RethinkDB 查询,如果找到该文档则返回该文档的合并版本,否则返回 null

如果 .get 返回 null,以下天真的查询(用 JavaScript 编写)会导致从 .merge 抛出异常(即找不到用户):

r.table('users')
.get(username)
.merge((user) => {
return {
'projects': r.table('projects').getAll(username, {index: 'owner',})
.coerceTo('array'),
}
})
.run(conn)

最佳答案

编写合并查询,同时处理未找到文档的情况,可以通过使用 do 来完成。和 branch ,这样 merge 只会在非空结果上被调用:

r.table('users')
.get(username)
.do((user) => {
// Only perform a merge if user isn't null
return r.branch(
user.eq(null),
null,
user.merge({
'projects': r.table('projects').getAll(username, {index: 'owner',})
.coerceTo('array'),
})
)
})
.run(conn)

关于javascript - 如何编写处理空结果的 RethinkDB 合并查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406476/

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