rethinkdb - hasFields查找具有多个缺失条件的所有文档

时间:2016-10-15 23:26:46

标签: rethinkdb rethinkdb-javascript

我找到了一个答案,用于查找此SO线程 RethinkDB - Find documents with missing field中缺少字段的表中的所有文档,但是我想根据缺少的字段和不同字段中的某个值进行过滤。

我想返回缺少字段emailisCurrent:值为1的所有文档。所以,我想返回所有缺少电子邮件字段的当前客户,以便我可以添加该字段 rethink网站上的文档不包括这种情况。

这是我最好的尝试:

r.db('client').table('basic_info').filter(function (row) {
  return row.hasFields({email: true }).not(),
/*no idea how to add another criteria here (such as .filter({isCurrent:1})*/

  }).filter

1 个答案:

答案 0 :(得分:1)

实际上,你可以在一个filter中完成。此外,它将比您当前的解决方案更快:

r.db('client').table('basic_info').filter(function (row) {
    return row.hasFields({email: true }).not()
      .and(row.hasFields({isCurrent: true }))
      .and(row("isCurrent").eq(1));
})

或:

r.db('client').table('basic_info').filter(function (row) {
    return row.hasFields({email: true }).not()
      .and(row("isCurrent").default(0).eq(1));
})