簡體   English   中英

從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語句中引用它們,例如

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM