каково возвращаемое значение ArangoJS collection.save ()? - PullRequest
0 голосов
/ 16 января 2019

Документация находится здесь:
Управление документами · Документация по драйверам 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 Ответ

0 голосов
/ 16 января 2019

Документация по методу сохранения находится в DocumentCollection :

https://docs.arangodb.com/3.4/Drivers/JS/Reference/Collection/DocumentCollection.html#documentcollectionsave

Ответ, который вы ищете:

возвращает объект, содержащий метаданные документа

Я признаю, что это не очень подробно. Возвращает системные атрибуты _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"
  }
}
...