Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取表中没有字段的所有记录_Javascript_Rethinkdb - Fatal编程技术网

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

Javascript 获取表中没有字段的所有记录,javascript,rethinkdb,Javascript,Rethinkdb,我在数据库中有一个表,我想在其中检索未设置字段single的所有记录。因为没有强制模式,所以存储的某些文档不遵循完全相同的结构 表中的示例数据: { "id": "1", "age": 27, "sex": "female", "single": true }, { "id": "2", "sex": "female", "age": 40 }, { "id": "3", "age": 45, "sex": "male", "single": fals

我在数据库中有一个表,我想在其中检索未设置字段
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。任何帮助都将不胜感激。

试试这样的方法

var data = [{
  "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
}];


var filtered = data.filter(function(elem){return typeof(elem.single) !== 'undefined';}));

如果您想要本机解决方案,下面是一个简单的非索引示例:

var result = [];
original.forEach(value) {
  if(value.single != null) {
    result.push(value);
  }
}

对于mongodb,您可以在此处阅读有关查询和投影的信息:

这是您在没有字段
single
或字段
single
null
的情况下检索所有文档的方式

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
不是键,则过滤器中会返回一个错误,文档将被跳过

文件:

  • 对于
    hasFields
  • 对于
    过滤器
如果你有很多数据,你可能也想使用索引