我在包含用户ID列表的文档中有一个数组 我想查找包含此用户ID列表的所有文档。
我知道我可以这样做:
r.db('unicorn')
.table('rooms').filter(function(doc){
return doc('people').contains(
"id-one","id-two"
)
})
我知道这会很好用,但我必须硬编码。如何传递contains
函数的值数组以匹配?
答案 0 :(得分:5)
经过一番挖掘,最简单的解决方案是使用args。从例子中有点不明显。这样我就可以传递动态值并用它们运行命令。
r.db('unicorn')
.table('rooms').filter(function(doc){
return doc('people').contains(
r.args(["id-one","id-two"])
)
})
答案 1 :(得分:1)
您可以使用setIntersection并传递数组:
r.db('unicorn')
.table('rooms').filter(function(doc){
return doc('people').default([]).setIntersection(
["id-one","id-two"]
).count().eq(2)
})
所以,如果你有数组:
var myArr = ["id-one","id-two"];
你可以写这样的查询:
r.db('unicorn')
.table('rooms').filter(function(doc){
return doc('people').default([]).setIntersection(myArr).count().eq(myArr.length)
})