从 AQL 获取对象数组
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 将集合中所有具有所有属性的文档作为一个数组。
如果您只想 return 特定属性,您可以在查询的 RETURN 语句中引用它们,例如
db._query(aql`FOR doc IN ${collection} RETURN doc.id`).toArray();
上面的查询将 return 一个仅包含 id 值的数组,因此可能也不是您想要的。
如果您想 return 某些属性及其值,则有以下解决方案:
在 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();
如果 return 有多个属性,后一种方法将节省输入。在这种情况下,您只需将它们添加到 KEEP 的第二个参数中。
如果问题更多关于"how can I exclude certain attributes from being returned",那么还有UNSET AQL函数:
db._query(aql`FOR doc IN ${collection} RETURN UNSET(doc, ["_key", "_rev", "_id"])`).toArray();
此方法将 return 没有上述属性的文档。
我想要一个结果作为 AQL 中的对象数组。
查询:
db._query(aql`FOR doc IN ${collection} RETURN doc`).toArray();
我想要这个结果...
{ "0": {"id": 1}, "1": {"id":2} }
...数组形式:
[{"id": 1}, {"id":2}]
您当前使用的查询是 return 将集合中所有具有所有属性的文档作为一个数组。
如果您只想 return 特定属性,您可以在查询的 RETURN 语句中引用它们,例如
db._query(aql`FOR doc IN ${collection} RETURN doc.id`).toArray();
上面的查询将 return 一个仅包含 id 值的数组,因此可能也不是您想要的。
如果您想 return 某些属性及其值,则有以下解决方案:
在 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();
如果 return 有多个属性,后一种方法将节省输入。在这种情况下,您只需将它们添加到 KEEP 的第二个参数中。
如果问题更多关于"how can I exclude certain attributes from being returned",那么还有UNSET AQL函数:
db._query(aql`FOR doc IN ${collection} RETURN UNSET(doc, ["_key", "_rev", "_id"])`).toArray();
此方法将 return 没有上述属性的文档。