我正在尝试使用Gremlin控制台向本地Cosmos DB图添加顶点(并最终将边缘)。我一直在关注this tutorial。但是,每当尝试添加顶点时,都会出现有关分区键的错误。
我的查询:
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]
如何解决查询并插入数据?
答案 0 :(得分:1)
我没有CosmosDB测试环境,但是有一个公共示例项目:
好像您必须add一个pk
属性(这很可能意味着“分区键”,并且应该以某种方式进行配置)。
答案 1 :(得分:1)
我混淆了分区键标签和值。扭转这些问题解决了我的问题。
答案 2 :(得分:1)
将两个值混合在一起的错误相同。因此,当您添加Azure数据库时,必须指定一个分区键,我选择了'/ client';
现在,当我查询时,我必须添加以下属性:
.property('client', 'pk')
-第一个值必须是键本身,第二个是“ pk”,是“ partitionKey”的缩写;然后,您必须在文档中添加属性:
client: 'TESTCLIENTID'
但是,很多事情还是关于您的“分区”策略所基于的,这是您必须为每个集合this video from Azure explains things in more detail quite good.
预先决定的事情。答案 3 :(得分:1)
您不需要在g.addV中添加分区键,我查看了“快速入门”选项卡在门户网站(“ graphdb / mycollection”数据库/集合)中为您创建的内容。您可以创建自己的文件,而在添加顶点时无需指定分区键就可以正常工作。 分区键
/_partitionKey
并选中复选框
My partition key is larger than 100 bytes
那还是为我解决了。