Последняя вставка _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