(AQL)如何在INTO集合中插入多个文档

时间:2017-12-18 14:24:05

标签: arangodb

根据ArangoDB文档,INSERT操作适用于单个文档插入。我有一个可能有数千个对象(文档)的数组。有没有办法通过单个查询将这个文档数组插入到集合中?

3 个答案:

答案 0 :(得分:2)

我相信你误解了文档,其中说:

  

每个AQL查询只允许每个集合使用一个INSERT语句

每个AQL查询可以有多个INSERT语句(受上述限制,除其他外),并且每个语句都需要多次插入。

以下是作为一个AQL查询成功执行的1000次插入的示例:

FOR n in 1..1000
 INSERT {_from: "tasks/1", _to: CONCAT("tasks/", TO_STRING(n))} in depends
 COLLECT WITH COUNT INTO c
 RETURN c

答案 1 :(得分:1)

另一种方法是使用arangosh访问数据库:

您可以使用方法collection.insert(array)将包含多个文档的数组插入到集合中。

示例:将两个文档插入集合"示例"

db.example.insert([{ id : "doc1" }, { id : "doc2" }]);
[ 
  { 
    "_id" : "example/12156601", 
    "_key" : "12156601", 
    "_rev" : "_WEnsap6---" 
  }, 
  { 
    "_id" : "example/12156605", 
    "_key" : "12156605", 
    "_rev" : "_WEnsap6--_" 
  } 
]

该方法记录在:https://docs.arangodb.com/3.2/Manual/DataModeling/Documents/DocumentMethods.html

答案 2 :(得分:0)

AQL v3.6中的大容量插入内容如下:

db.collection('collection_name').save([{ id : "doc1" }, { id : "doc2" }]);

如文档中所述,我已经在我的项目中使用NodeJS对其进行了测试。 https://www.arangodb.com/docs/stable/programs-arangosh-details.html#database-wrappers