gpt4 book ai didi

join - 在 RethinkDB 中合并文档数组

转载 作者:行者123 更新时间:2023-12-05 00:21:55 25 4
gpt4 key购买 nike

假设我有一个名为 bookshelf 的表。我创建了一个书架文档,其中包含一组 ID,这些 ID 引用了另一个名为 books 的表中的书籍。我正在尝试使用 getAllmerge 来组合查询中的文档,但我似乎无法将所有元素传递给 getAll 。我相信 getAll 将 ID 数组解释为单个文字“对象”。

书架文件:

{
id: 'MyShelf'
books: [ 1, 2, 6, 9 ]
}

一本书文件:
{
id: 1
name: 'Merging in RethinkDB for Dummies'
}

我的查询:
r.db('test').table('bookshelf').merge(function(bookshelf) {
return {
booksOnShelf: r.table('books').getAll(bookshelf('books')).coerceTo('array')
}
})

预期结果:
{
id: 'MyShelf'
books: [ 1, 2, 6, 9 ],
booksOnShelf: [
{ id: 1, name: 'Merging in RethinkDB for Dummies' },
{ id: 2, name: 'Cool Title!' },
...
]
}

实际结果:
{
id: 'MyShelf'
books: [ 1, 2, 6, 9 ],
booksOnShelf: [ ]
}

最佳答案

事实证明,我需要使用 r.args 将数组转换为用于 getAll 函数的实际参数。

这是正确的查询:

r.db('test').table('bookshelf').merge(function(bookshelf) {
return {
booksOnShelf: r.table('books').getAll(r.args(bookshelf('books'))).coerceTo('array')
}
})

结果:
{
"books": [ 1, 2 ],
"booksOnShelf": [{
"id": 1,
"title": "RethinkDB for Dummies"
}, {
"id": 2,
"title": "Awesome Title!"
}],
"id": "MyShelf"
}

关于join - 在 RethinkDB 中合并文档数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30697492/

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