假设我在Things表中有这些文档:
{
"name": "Cali",
"state": "CA"
},
{
"name": "Vega",
"state": "NV",
},
{
"name": "Wash",
"state": "WA"
}
我的UI是状态选择器,用户可以在其中选择多个状态。我想显示适当的结果。 SQL等价物是:
SELECT * FROM Things WHERE state IN ('CA', 'WA')
我试过了:
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r('state')))
但这不会返回任何内容,我不明白为什么那样做不起作用。
这适用于获得单一状态:
r.db('test').table('Things').filter(r.row('state').eq('CA'))
答案 0 :(得分:1)
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r.row('state')))
似乎在某些版本中有效并返回
[
{
"id": "b20cdcab-35ab-464b-b10b-b2f644df73e6" ,
"name": "Cali" ,
"state": "CA"
} ,
{
"id": "506a4d1f-3752-409a-8a93-83385eb0a81b" ,
"name": "Wash" ,
"state": "WA"
}
]
无论如何,您可以使用函数代替r.row:
r.db('test').table('Things').filter(function(row) {
return r.expr(['CA', 'WA']).contains(row('state'))
})