0

假设我在 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'))
4

1 回答 1

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'))
})
于 2016-02-28T21:59:45.733 回答