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'))
})
我在文档中找不到任何关于 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'))
})