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
- 对于
:过滤器