使用Gremlin Console将顶点插入本地Cosmos DB仿真器

时间:2019-09-18 16:42:15

标签: console azure-cosmosdb gremlin azure-cosmosdb-gremlinapi

我正在尝试使用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]

如何解决查询并插入数据?

4 个答案:

答案 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

那还是为我解决了。