获取 table 中没有字段的所有记录
Get all records in table without field
我在 RethinkDB 中有一个 table,我想在其中检索未设置字段 single
的所有记录。因为没有强制架构,一些存储的文档不遵循完全相同的结构。
table中的示例数据:
{
"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,您可以在此处阅读有关查询和预测的信息:http://docs.mongodb.org/manual/reference/operator/query/
这就是您如何检索没有字段 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
:http://www.rethinkdb.com/api/javascript/has_fields/
- 对于
filter
:http://www.rethinkdb.com/api/javascript/filter/
如果您有大量数据,您可能也想使用索引。
我在 RethinkDB 中有一个 table,我想在其中检索未设置字段 single
的所有记录。因为没有强制架构,一些存储的文档不遵循完全相同的结构。
table中的示例数据:
{
"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,您可以在此处阅读有关查询和预测的信息:http://docs.mongodb.org/manual/reference/operator/query/
这就是您如何检索没有字段 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
:http://www.rethinkdb.com/api/javascript/has_fields/ - 对于
filter
:http://www.rethinkdb.com/api/javascript/filter/
如果您有大量数据,您可能也想使用索引。