首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AQL获取对象数组

从AQL获取对象数组
EN

Stack Overflow用户
提问于 2018-09-11 18:44:52
回答 1查看 116关注 0票数 0

我想要一个作为AQL中的对象数组的结果。

查询:

代码语言:javascript
复制
db._query(aql`FOR doc IN ${collection} RETURN doc`).toArray();

我想得到这个结果..。

{ "0": {"id": 1}, "1": {"id":2} }

...in数组的形式:

[{"id": 1}, {"id":2}]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-12 07:35:06

当前使用的查询是将集合中的所有文档作为数组返回所有属性。

如果您只想返回特定的属性,可以在查询的return语句中引用它们。

代码语言:javascript
复制
db._query(aql`FOR doc IN ${collection} RETURN doc.id`).toArray();

上面的查询将返回一个仅包含id值的数组,因此可能也不是您想要的。

如果您想在属性的值旁边返回一些属性,则有以下解决方案:

在返回部分中显式地命名属性

代码语言:javascript
复制
db._query(aql`FOR doc IN ${collection} RETURN { id: doc.id }`).toArray();

使用AQL保持功能

代码语言:javascript
复制
db._query(aql`FOR doc IN ${collection} RETURN KEEP(doc, ["id"])`).toArray();

如果有多个属性要返回,后一种方法将保存类型。在这种情况下,只需添加它们就可以保留第二个参数。

如果更多的问题是“如何从返回中排除某些属性”,那么还有未设置的AQL函数:

代码语言:javascript
复制
db._query(aql`FOR doc IN ${collection} RETURN UNSET(doc, ["_key", "_rev", "_id"])`).toArray();

此方法将返回没有上述属性的文档。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52282369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档