rethinkDB 是否支持 in 子句?

Does rethinkDB support an in clause?

我在文档中找不到任何关于 in 子句 in rethink 的内容。

rethink 是否支持 mongo 的 $in 子句的等效项?即 row('name').in(['bob', 'tom']) ?

我想你可以链接一堆 "or" 子句,但这看起来很笨重。

RethinkDB 没有 in,但它有 contains。因此,顺序与 in 相反。你可以这样写:

r.expr(['bob', 'tom']).contains(row('name'))

示例,

r.expr([1,2,3,4]).contains(1)
=> true
r.expr([1,2,3,4]).contains(5)
=> false

另一个现实生活中的例子,在一个数组中找到一个名字的用户。让我们创建一些示例数据:

r.tableCreate('test')
r.table('test').insert([{name: 'foo'}, {name: 'bar'}, {name: 'foobar'}])

根据以上数据,我可以在数组中找到 name 的所有文档:

r.table('test').filter(function(doc) {
    return r.expr(['foo', 'bar']).contains(doc('name'))
})