[英]Insert vertex into local Cosmos DB Emulator using Gremlin Console
我正在嘗試使用 Gremlin 控制台將頂點(並最終是邊)添加到本地 Cosmos DB 圖。 我一直在關注本教程。 但是,每當我嘗試添加頂點時,都會收到有關分區鍵的錯誤。
我的查詢:
g.addV('person').property('firstName', 'Thomas').property('lastName', 'Andersen').property('age', 44).property('userid', 1).property('pk', 'pk')
錯誤:
ActivityId : cd07f7be-d824-40fa-8137-0f2726a9c26d
ExceptionType : GraphRuntimeException
ExceptionMessage :
Gremlin Query Execution Error: Cannot add a vertex where the partition key property has value 'null'.
Source : Microsoft.Azure.Cosmos.Gremlin.Core
GremlinRequestId : cd07f7be-d824-40fa-8137-0f2726a9c26d
Context : graphcompute
Scope : graphcomp-execquery
GraphInterOpStatusCode : GraphRuntimeError
HResult : 0x80131500
Type ':help' or ':h' for help.
Display stack trace? [yN]
如何修復我的查詢並插入數據?
我沒有 CosmosDB 測試環境,但是有一個公共示例項目:
看起來您必須添加一個pk
屬性(這很可能意味着“分區鍵”,並且應該可以以某種方式進行配置)。
我混淆了分區鍵標簽和值。 扭轉這些解決了我的問題。
是否犯了將兩個值混合在一起的相同錯誤。 因此,當您添加 azure 數據庫時,您必須指定一個分區鍵,我選擇了“/client”;
現在,當我進行查詢時,我必須添加此屬性:
.property('client', 'pk')
-- 第一個值必須是密鑰本身,第二個值是 'pk',是 'partitionKey' 的縮寫; 然后在您的文檔中,您必須添加一個屬性:
client: 'TESTCLIENTID'
但同樣,其中很多都是關於你的“分區”策略所基於的,這是你必須為每個集合預先決定的東西,來自 Azure 的這個視頻更詳細地解釋了一些事情,非常好。
您不需要在 g.addV 中添加分區鍵,我查看了“快速啟動”選項卡在門戶中為您創建的內容,即“graphdb/mycollection”數據庫/集合。 您可以創建自己的,在添加頂點時無需指定分區鍵即可正常工作...只需指定分區鍵
/_partitionKey
並選中復選框
My partition key is larger than 100 bytes
無論如何,這為我解決了它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.