过滤属性在提供的数组中的位置
Filter where attribute is in supplied array
假设我在 Things table:
中有这些文档
{
"name": "Cali",
"state": "CA"
},
{
"name": "Vega",
"state": "NV",
},
{
"name": "Wash",
"state": "WA"
}
我的 UI 是一个状态选择器,用户可以在其中 select 多个状态。我想显示适当的结果。 SQL 等价物是:
SELECT * FROM Things WHERE state IN ('CA', 'WA')
我试过:
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r('state')))
但这没有 return 任何东西,我不明白为什么那行不通。
这适用于获得单一状态:
r.db('test').table('Things').filter(r.row('state').eq('CA'))
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r.row('state')))
似乎在某些版本中有效并且 returns
[
{
"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'))
})
假设我在 Things table:
中有这些文档{
"name": "Cali",
"state": "CA"
},
{
"name": "Vega",
"state": "NV",
},
{
"name": "Wash",
"state": "WA"
}
我的 UI 是一个状态选择器,用户可以在其中 select 多个状态。我想显示适当的结果。 SQL 等价物是:
SELECT * FROM Things WHERE state IN ('CA', 'WA')
我试过:
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r('state')))
但这没有 return 任何东西,我不明白为什么那行不通。
这适用于获得单一状态:
r.db('test').table('Things').filter(r.row('state').eq('CA'))
r.db('test').table('Things').filter(r.expr(['CA', 'WA']).contains(r.row('state')))
似乎在某些版本中有效并且 returns
[
{
"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'))
})