如何根据“必须”对象而不是“必须”进行过滤

时间:2014-06-12 03:23:51

标签: rethinkdb

过滤器函数可以接受对象作为定义必须匹配的字段的方法。有没有一种简单的方法可以做相反的事情?我想过滤到必须与提供的对象不匹配的项目。我知道.ne()函数,但这是完全匹配。我现在正在做一堆.and()而且它有点难看。我只想找到确认Issue #1000的魔力。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

```
r.table('posts').filter(function(post) {
  return post.merge({field1: value1, field2: value2}).ne(post)
})
```

基本上将帖子与您想要“匹配”的对象合并,如果这会更改post的值,则在输出中包含帖子。

答案 1 :(得分:1)

您可以使用r.and让事情变得更好

r.table("posts").filter(function(post) {
    return r.and(
        post("field1").ne("value1),
        post("field2").ne("value2),
        post("field3").ne("value3)
    )
})