2017-09-27 80 views
1

我有一個CosmosDB中的json文檔集合,可以包含對集合中其他文檔的引用(通過id)。我可以在CosmosDB(Graph API)中使用觸發器根據文檔有效載荷自動創建邊緣嗎?

我想通過使用在創建/更新/刪除文檔時運行的觸發器自動管理這些文檔之間的圖形邊緣。

我可以通過觸發器函數從JavaScript訪問Gremlin API嗎?

在圖的上下文中是否有觸發器的任何文檔?我找不到任何東西。

另一個更髒的選擇是在觸發器中「手動」創建邊緣文檔,但如果CosmosDB團隊更改描述邊緣的文檔的基礎格式,則會中斷。

回答

1

Cosmos DB Trigger可能會工作,它會給你一套你可能需要先處理的文件。

由於觸發器正在偵聽Change Feed,您將獲得代表集合上任何插入/更新的文檔。在Graph的情況下,這些可以是Vertices或Edges,因此您可能需要首先檢測使用它的文檔類型。

至於堅持新的關係,DocumentDB Output binding可能不適合你,因爲像你說的那樣,內部表示可能會改變。但你可以做的是在你的Azure函數中包含一些C#/Node Gremlin library,並用它直接與Cosmos DB Graph API交談。

+1

OP似乎指的是包含在Cosmos中的實際觸發功能,而不是Azure功能觸發器。在數據庫級觸發器的情況下,您可以獲得自動事務範圍和ACID保證,這對他的工作負載可能很重要 –

+0

好點,我認爲他指的是具有Azure函數的新CosmosDB觸發器,如果​​OP確認,我將刪除該答案情況並非如此:) –

1

圖形API目前在UDFs /數據庫觸發器/存儲過程中不受支持,並且我們沒有時間線來支持它。

下一個最好的方法是手動創建您所描述的圖形元素。

相關問題