Последняя вставка _key в ArangoDB с AQL?

Как я могу получить последний вставленный _key в ArangoDB с запросом AQL? Я положил элемент в коллекцию, следующий элемент должен содержать _key созданный элемент. Как мне получить этот _key?

2 ответа

Обновление по этому вопросу: начиная с версии ArangoDB 2.4 можно получить только что вставленный документ (или документы) даже с помощью запроса AQL.

В предыдущих версиях ArangoDB 2.3 синтаксис для одного документа INSERT был:

INSERT { value: 1 } IN collection 

без возможности извлечь системные атрибуты (_key, _rev и т. д.) для только что вставленного документа. Начиная с версии 2.4 также возможно следующее:

INSERT { value: 1 } IN collection LET result = NEW RETURN result

Вышеуказанное возвращает созданный документ, включая указанные атрибуты (value в приведенном выше случае) и системные атрибуты.

Это также работает для вставок нескольких документов, например, следующий запрос

FOR i IN 1..10 
  INSERT { value: i } IN collection

можно превратить в

FOR i IN 1..10 
  INSERT { value: i } IN collection LET result = NEW RETURN result

вернуть все вставленные документы.

К сожалению, на данный момент (2.3) невозможно получить последний вставленный _key с запросом AQL.

Однако вы можете использовать db.<collection>.save({ Hello : "World" }): чтобы получить последние _key

Вернуть документ

INSERT { myValue: "123", myValue2: "456" } INTO myCollection RETURN NEW

только вернуть _key

INSERT { myValue: "123", myValue2: "456" } INTO myCollection LET inserted = NEW RETURN inserted._key

Другие вопросы по тегам