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