You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure CosmosDB Graph(GREMLIN API):如何查询两个顶点的指定属性(含schema)

解决Azure Cosmos DB Gremlin查询获取指定属性的问题

要得到你期望的输出格式,你需要调整查询的结构,不再只提取顶点ID,而是直接构造包含目标字段的对象。这里核心是用project()步骤来定义你要返回的每个字段,并关联对应的顶点属性:

g.V().hasLabel("subtype").as("subtype")
  .out("typeof").as("type")
  .project("label", "schema", "name")
    .by(select("subtype").values("label"))
    .by(select("subtype").values("schema"))
    .by(select("type").values("name"))

为什么原来的查询不行?

你之前的select("subtype", "type").by("id")只是简单地提取了两个顶点的ID,返回的是包含subtype和type两个键的对象,无法直接组合出你要的三个字段结构。

关键部分说明:

  • 先用as("subtype")和as("type")分别标记两个关联的顶点,方便后续引用
  • project("label", "schema", "name")直接定义最终输出的对象结构,三个键对应你需要的字段
  • 每个by()修饰器对应一个字段:
    • by(select("subtype").values("label")):从标记为subtype的顶点中提取label属性值
    • by(select("subtype").values("schema")):从subtype顶点中提取schema属性值(也就是你提到的properties数组中的schema值)
    • by(select("type").values("name")):从关联的type顶点中提取name属性值

如果你的schema属性不是顶点的直接属性,而是嵌套在properties数组里的某个元素,可以调整这部分的提取逻辑,比如:

.by(select("subtype").values("properties").unfold().hasKey("schema").values("schema"))

不过根据你的描述,应该是顶点的直接属性,所以用values("schema")就足够了。

内容的提问来源于stack exchange,提问作者Michi-2142

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:45:43