Каково возвращаемое значение ArangoJS collection.save()?
Документация находится здесь:
Управление документами · Документация по драйверам ArangoDB v3.4.1
Я вижу документацию для collection.replace()
а также collection.update()
, но ничего для collection.save()
, Я знаю, что функция сохранения завершается, потому что я использую ее. Но это не возвращает ожидаемое значение, и я хотел бы сослаться на документацию.
Моя конкретная проблема заключается в том, что я хочу сохранить документ в базе данных ArangoDB и вернуть сохраненный документ в полном объеме. Вот что у меня так далеко:
async createDocument(collectionName, data) {
try {
const collection = this.db.collection(collectionName);
return collection.save(data); //I want to return the saved document
} catch(err) {
console.log(err.message, "saving failed")
}
}
1 ответ
Документация по методу сохранения находится в DocumentCollection:
https://docs.arangodb.com/3.4/Drivers/JS/Reference/Collection/DocumentCollection.html
Ответ, который вы ищете:
возвращает объект, содержащий метаданные документа
Я признаю, что это не очень подробно. Что он возвращает, так это системные атрибуты _id
, _key
а также _rev
, Это также применимо, если вы сохраняете ребро с _from
и _to
атрибут, они не возвращаются в качестве метаданных или каких-либо пользовательских атрибутов, даже если их имена начинаются с подчеркивания.
Если вы хотите, чтобы он возвратил полный документ, то установите опцию returnNew
:
collection.save(data, { returnNew: true} );
Если установлено значение true, вернуть дополнительно все новые документы под атрибутом new в результате.
Результат выглядит так:
{
"_id": "coll/123",
"_key": "123",
"_rev": "_YDWaEaa--B",
"new": {
"_id": "coll/123",
"_key": "123",
"_rev": "_YDWaEaa--B",
"foo": "bar"
}
}