我在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
或字段 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/ - 对于
过滤器
:http://www.rethinkdb.com/api/javascript/filter/
如果您有大量数据,您可能也想使用索引。
关于javascript - 获取表中所有没有字段的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348808/