问题标签 [azure-cosmosdb-gremlinapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
573 浏览

c# - 当部分查询不返回任何内容时,Gremlin 查询不返回任何结果

我有一个 gremlin 查询,可以找到我想要存档的顶点,但它返回一个空数组。

我的图表的布局方式是一个顶点可以有多个父母和孩子。当一个顶点被归档时,它需要归档所有受影响的后代,这些后代将被这个过程“孤立”。如果任何后代有返回中心顶点的路径,那么它不应该存档它,因为它不会被“孤立”

当它发现一些后代有返回到中心顶点的路径而不通过原始顶点时,它就会工作并返回它应该返回的所有结果。但是,如果它找不到任何带有路径的后代,那么理论上它应该只返回所有后代。相反,它返回一个空数组。我的猜测是,在遍历的那个阶段之后它会卡住,因为它什么也没找到,因此无法继续进行其他任何事情。

如果在那个阶段什么也没找到,我该如何归还所有后代?

有关图表的示例,请参阅我之前的问题

0 投票
1 回答
451 浏览

gremlin - 如何在 Gremlin 3.4.0 中返回顶点属性的元属性

我的顶点属性之一得到了他的属性(元属性)。但是当我返回所有顶点属性时,我只得到该属性的值,而不是他的属性。那有可能吗?

这是我尝试过的:

0 投票
1 回答
299 浏览

azure-cosmosdb - 使用 Cosmos Graph DB 在 Azure 搜索中软删除

我正在尝试使用 Cosmos DB Graph 数据库作为我的数据源在 Azure 搜索上设置软删除功能。

Azure 搜索需要数据库中的一列来跟踪删除,因此我为我的所有顶点添加了一个名为“isDeleted”的属性,其值为真/假。但是 Search 仍然不能使用此列,因为它存储在图形数据库的属性集合中,而不是简单的名称/值对。

例如。它像这样存储在属性对象中:

我看不到任何更改 Cosmos 存储属性的方式的方法,您对我如何设置有任何建议吗?

0 投票
1 回答
21 浏览

gremlin - 使用来自边缘和连接顶点的数据创建“连接”查询

我有一个 Gremlin API Cosmos DB。在数据库中,我有一种 Vertice with LabelUser连接到 Vertices 标签Companies。然后我想展示所有关联的公司。我进行查询g.V('id-of-User').outE()并获取所有连接的公司。结果可能如下所示:

这完全符合预期。现在我想更进一步,而不是只在 inV 参数中显示 GUID,我还想在结果对象中包含公司名称,但我不明白如何在此处执行与 SQL 连接等效的操作。

有人可以帮帮我吗!!

我想要的是类似于下面的例子:

其中CompanyName是 Company Vertice 中的属性之一,其中的 guid 位于inVprop 中。

0 投票
0 回答
447 浏览

azure-cosmosdb - 在 azure cosmosdb graph.Possible WorkArounds 中使用 gremlin 限制重复()步骤仅使用 32 个循环

我目前正在使用 Azure Cosmos DB[Gremlin API] 来存储 Hierarichal 信息。我正在使用“ParentOf”类型的边在我的顶点之间维护父子关系。

要求:给定一个已知的父顶点,从该顶点获取所有子顶点[递归派生]。

问题:我正在使用以下查询来获取所需的边和顶点。

获取 vertexX Hierarchy 下的所有顶点: gV().hasLabel('company').has('CompanyName', 'vertexX').emit().repeat(out('ParentOf')).until(__.outE( ).count().is(0))

获取vertexX Hierarchy下的所有边。我们只获取由关系'ParentOf'定义的边:gV().hasLabel('company').has('CompanyName','vertexX').emit().repeat(out ('ParentOf')).until(__.outE().count().is(0)).outE('ParentOf')

问题:给定一个大子距离大于 32 的层次结构,上述查询失败并出现以下错误:gV().hasLabel('company').has('CompanyName','SR101').emit().repeat( out('ParentOf')).until(__.outE().count().is(0)).values('CompanyName'):脚本评估错误:ActivityId:b1f1fc11-f616-4ea4-8301-8e2eb32711d1 ExceptionType: GraphRuntimeException ExceptionMessage:Gremlin 查询执行错误:超过重复()步骤的最大循环数。不能超过 32 个循环。建议使用 times(n) 步骤或使用 loops() 条件限制循环次数。例如:...until(hasId(targetId).or().loops().is(n)) 来源:Microsoft.Azure.Graphs GremlinRequestId:b1f1fc11-f616-4ea4-8301-8e2eb32711d1 上下文:graphcompute 范围:graphcomp -execquery GraphInterOpStatusCode :

我已经尝试过 subgraph() 步骤是否有用,但徒劳无功,因为 cosmosdb 可以使用的 gremlin 步骤有限

看来这是一个限制。对于这种情况,是否有任何已知的最佳实践或解决方法。

0 投票
0 回答
109 浏览

gremlin - Cosmos DB gremlin API 中的选择和选项步骤

虽然choose不在Cosmos DB (以及其他一些)支持的 gremlin 步骤列表中,但它似乎是受支持的。给定一个带有人的示例图,它是一个类似的查询

返回一个 json 数组['Josh!']。添加更多选项也可以,例如

但似乎不起作用的是使用Pick.none/none来指定默认情况,如gremlin 文档choose中所述,例如

有人知道如何在 Cosmos DB 中指定默认情况吗?Pick我已经尝试过任何包含和/或none我能想到的排列,例如Pick.none, Pick().none(), none, none(), ...

0 投票
1 回答
19 浏览

azure-cosmosdb - 为什么使用 1 `addV()` 子句从查询中创建 4 个顶点?

根据Tinkerpop 文档,我希望以下查询在传递给 Azure CosmosDB 时创建 1 个具有 5 个属性的新顶点。

id出乎意料的是,这个查询创建了 4 个具有不同值但具有相同属性的新顶点(注意:是一个 cosmos db 属性,与我在上面指定id的属性不同)。docId

我正在 Azure CosmosDB 在线门户中执行此查询。

谁能帮我理解为什么要创建 4 个顶点而不是 1 个?

0 投票
1 回答
443 浏览

gremlin - Gremlin:根据两个属性值的比较选择顶点

假设我有以下 Gremlin 图:

我想查询属性值 v1 大于属性值 v2 的所有“test1”标记顶点。如何在 Gremlin 中实现这一目标?

0 投票
1 回答
668 浏览

azure-cosmosdb - 如果查询 RU 成本超过限制,如何从 Microsoft Azure Cosmos DB 中删除所有边

我们在 Azure Cosmos DB (Gremlin API) 中有一个大约 3K 顶点和 16K 边的图。我想删除所有边但保留顶点。

当我运行 gremlin 查询时,q.E().drop()我得到了异常

当前 RU/s 限制为 3000 RU/s

我了解引发此类错误的机制。“等待并重试”在这里不是一个选项 - 单个查询而不是多个查询超出了限制,所以下次我在等待一段时间后运行它时,我也会得到同样的异常。

问题是我必须使用哪些选项以尽可能少的查询来删除所有边缘?

我试图运行q.E().limit(20).drop(),它工作并报告 237.62999999999994 RU

当我运行时,q.E().limit(2000).drop()我得到了异常。

'gE().limit(1).drop()' 结果显示 Azure 数据资源管理器中不同的 RU 成本:

但不断的请求费用:546.38

摆脱边缘的最佳方法是什么(就性能和/或成本而言)

0 投票
1 回答
284 浏览

azure-cosmosdb - 了解 fold() 及其对 Azure Cosmos DB 中 gremlin 查询成本的影响

我正在尝试了解 Azure Cosmos DB 中的查询成本

我无法弄清楚以下示例中有什么区别以及为什么使用 fold() 会降低成本:

产生以下输出:

成本为 15642 RU x 0.00008 $/RU = 1.25$

产生以下输出:

成本为 787 RU x 0.00008$/RU = 0.06$

具有以下输出:

成本:10639 RU x 0.00008 $/RU = 0.85$

具有以下输出:

成本为 724.27 RU x 0.00008 $/RU = 0.057$

如您所见,对成本的影响是巨大的。这只是大约。3200 个节点,属性很少。

我想了解为什么添加折叠更改如此之多。