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

标签 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
}

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

最佳答案

这是检索不带字段 single 或字段 singlenull 的所有文档的方法。

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

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

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

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

文档:

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

关于javascript - 获取表中所有没有字段的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348808/

相关文章:

php - Internet Explorer 无法使用基于 php 生成的选择选项值的 JavaScript 函数

rethinkdb - 我应该明确关闭 RethinkDB 连接吗?

javascript - iOS uiwebview 在加载整个 html 文件之前触发 finishLoad 事件

javascript - Stilts.js 无法使用安全的 true 连接到 websocket 服务器

javascript - 未捕获的 DOMException : Failed to execute 'readAsDataURL' on 'FileReader'

Node.js 同步返回多个异步yield结果

javascript - 用另一个对象替换嵌套对象

rethinkdb - 根据 id 字段合并 2 个对象子文档数组

ubuntu - 如何在 Ubuntu 上卸载 RethinkDB?

javascript - Calendar.events.lists 回调参数不会被调用