获取表中没有字段的所有记录

Gor*_*dyD 2 javascript rethinkdb

我在RethinkDB中有一个表,我想在其中检索single未设置该字段的所有记录。因为没有强制模式,一些存储的文档不遵循完全相同的结构。

表中的示例数据:

{
  "id": "1",
  "age": 27,
  "sex": "female",
  "single": true
},
{
  "id": "2",
  "sex": "female",
  "age": 40
},
{
  "id": "3",
  "age": 45,
  "sex": "male",
  "single": false
},
{
  "id": "4",
  "sex": "male",
  "age": 16
}
Run Code Online (Sandbox Code Playgroud)

我需要编写一个ReQL查询来检索记录 2 和 4。任何帮助将不胜感激。

neu*_*ino 5

这就是您检索没有字段single或字段single为 的所有文档的方式null

r.table('data').filter(function(doc) {
    return doc.hasFields('single').not();
}).run().then(...).error(...)
Run Code Online (Sandbox Code Playgroud)

如果您只想要未定义的字段:

r.table('data').filter(function(doc) {
     return doc('single').ne(null);
}).run().then(...).error(...)
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为如果single不是键,过滤器中将返回错误,并且文档将被跳过。

文档:

如果您有大量数据,您可能也想使用索引。