2017-01-01 81 views
0

是否可以通過指定可能存在或不存在的文檔創建邊,並在它們不存在時創建它們?是否有可能在ArangoDB中同時創建邊和頂點

舉例來說,如果我喜歡運行一個查詢:

INSERT {_to: 'docs/something', _from: 'docs/other'} IN edges 

如果其他任何文檔/某事或文檔/不存在,我會得到一個錯誤。有沒有我可以通過的選項,如果它們不存在,會創建docs/something和docs/other(或許是空對象)?

注:我可以做一個批量導入,而不文件創建邊緣- _TO和/或_from只是沒有出路 - 但我寧願創建一個空白文檔

回答

1

一個管理圖的特點是,它確保圖形的完整性。因此使用the edge management facility將以ArangoDB結束,不允許插入懸掛邊緣。

但是,ArangoDBs的圖形功能是基於文檔功能的。文檔功能不能保證圖形的完整性;因此inserting edges referencing non existant vertices is possible this way和您的示例查詢將工作,如果邊集合存在。

然而,quoting the insert documentation

Each INSERT operation is restricted to a single collection, 
and the collection name must not be dynamic. 
Only a single INSERT statement per collection is allowed per AQL query, 
and it cannot be followed by read operations that access 
the same collection, by traversal operations, 
or AQL functions that can read documents. 

所以,你將無法使用AQL在同一查詢中動態創建的頂點。

在ArangoDB 2.8中,頂點集合必須先存在。

相關問題