[英]Get array of object from AQL
我想要一个结果作为AQL中的对象数组。
查询:
db._query(aql`FOR doc IN ${collection} RETURN doc`).toArray();
我想要这个结果...
{ "0": {"id": 1}, "1": {"id":2} }
...以数组的形式:
[{"id": 1}, {"id":2}]
您当前使用的查询将以数组的形式返回具有所有属性的集合中的所有文档。
如果只想返回特定的属性,则可以在查询的RETURN语句中引用它们,例如
db._query(aql`FOR doc IN ${collection} RETURN doc.id`).toArray();
上面的查询将返回仅包含id值的数组,因此也可能不是您想要的。
相反,如果您想返回一些属性和它们的值,则有以下解决方案:
在RETURN部分中明确命名属性 :
db._query(aql`FOR doc IN ${collection} RETURN { id: doc.id }`).toArray();
使用AQL KEEP函数 :
db._query(aql`FOR doc IN ${collection} RETURN KEEP(doc, ["id"])`).toArray();
如果有多个属性要返回,则后一种方法将节省类型。 在这种情况下,您只需要将它们添加到KEEP的第二个参数中。
如果问题更多地是关于“如何排除某些属性以免返回”,那么还可以使用UNSET AQL函数:
db._query(aql`FOR doc IN ${collection} RETURN UNSET(doc, ["_key", "_rev", "_id"])`).toArray();
这种方法将返回没有提到的属性的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.