ArangoDB:过滤掉集合查询中的文档属性
ArangoDB: filter out document attributes in a collection query
我有一个 ArangoDB 集合,其中包含许多不同类型的文档(具有不同的属性集)。
我想进行 select 查询并过滤掉一些属性,即 return 除了 selected 文档的几个预定义属性之外的所有属性。
例如,如果这是 selected 子集:
{a:1, b:2, c:3, d:4, e:5, h:8}
{a:21, b:22, c:23, d:4, w:5, p:81}
{a:31, b:22, c:63, f:4, e:5, u:82}
{a:41, b:32, c:53, g:4, h:5, l:83}
{a:51, b:42, c:53, h:4, j:5, n:84}
{a:61, b:52, c:33, i:4, u:5, m:85}
我想要 return 所有属性,但 'b'、'c'、'd':
{a:1, e:5, h:8},
{a:21, w:5, p:81}
{a:31, f:4, e:5, u:82}
{a:41, g:4, h:5, l:83}
{a:51, h:4, j:5, n:84}
{a:61, i:4, u:5, m:85}
最有效的方法是什么?
您可以使用 UNSET
AQL 函数来执行此操作。
以下 AQL 查询 returns 集合中的所有文档,但为每个文档取消设置提到的属性 b
、c
和 d
.
FOR doc IN collection
RETURN UNSET(doc, ['b', 'c', 'd' ])
上述数据集的查询结果为(注意,为简洁起见,我还排除了属性 _id
、_key
和 _rev
):
[
{
"a" : 41,
"h" : 5,
"g" : 4,
"l" : 83
},
{
"a" : 31,
"e" : 5,
"f" : 4,
"u" : 82
},
{
"a" : 61,
"u" : 5,
"i" : 4,
"m" : 85
},
{
"a" : 1,
"e" : 5,
"h" : 8
},
{
"a" : 51,
"h" : 4,
"j" : 5,
"n" : 84
},
{
"a" : 21,
"w" : 5,
"p" : 81
}
]
我有一个 ArangoDB 集合,其中包含许多不同类型的文档(具有不同的属性集)。
我想进行 select 查询并过滤掉一些属性,即 return 除了 selected 文档的几个预定义属性之外的所有属性。
例如,如果这是 selected 子集:
{a:1, b:2, c:3, d:4, e:5, h:8}
{a:21, b:22, c:23, d:4, w:5, p:81}
{a:31, b:22, c:63, f:4, e:5, u:82}
{a:41, b:32, c:53, g:4, h:5, l:83}
{a:51, b:42, c:53, h:4, j:5, n:84}
{a:61, b:52, c:33, i:4, u:5, m:85}
我想要 return 所有属性,但 'b'、'c'、'd':
{a:1, e:5, h:8},
{a:21, w:5, p:81}
{a:31, f:4, e:5, u:82}
{a:41, g:4, h:5, l:83}
{a:51, h:4, j:5, n:84}
{a:61, i:4, u:5, m:85}
最有效的方法是什么?
您可以使用 UNSET
AQL 函数来执行此操作。
以下 AQL 查询 returns 集合中的所有文档,但为每个文档取消设置提到的属性 b
、c
和 d
.
FOR doc IN collection
RETURN UNSET(doc, ['b', 'c', 'd' ])
上述数据集的查询结果为(注意,为简洁起见,我还排除了属性 _id
、_key
和 _rev
):
[
{
"a" : 41,
"h" : 5,
"g" : 4,
"l" : 83
},
{
"a" : 31,
"e" : 5,
"f" : 4,
"u" : 82
},
{
"a" : 61,
"u" : 5,
"i" : 4,
"m" : 85
},
{
"a" : 1,
"e" : 5,
"h" : 8
},
{
"a" : 51,
"h" : 4,
"j" : 5,
"n" : 84
},
{
"a" : 21,
"w" : 5,
"p" : 81
}
]