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

如何在Gremlin查询语句中传递多个id或参数值

Gremlin查询中传递多个ID/参数值的方法

针对你给出的排除多个ID的查询场景,可以直接用Gremlin内置的谓词实现多参数传递,具体用法如下:

  • 排除多个指定ID(对应你的hasNot示例需求)
    推荐用hasId搭配without谓词实现,语义更清晰,性能也优于hasNot(T.id, xxx)的写法:
// 方式1:先定义要排除的ID列表,再传入谓词
def excludeIds = [1, 2, "user-001", "order-045"]
g.V().hasId(without(excludeIds))

// 方式2:直接内联传入多个ID
g.V().hasId(without(1, 2, "user-001", "order-045"))
  • 匹配多个指定ID
    如果是要查询命中指定ID的顶点,用within谓词即可,用法和without完全一致:
def targetIds = [10, 20, "product-123"]
g.V().hasId(within(targetIds))
  • 普通属性传递多个参数的通用写法
    如果需要对非ID的顶点/边属性做多值匹配/排除,同样可以用within、without谓词:
// 查询状态为已完成、已取消的订单
g.V().hasLabel("order").has("status", within("FINISHED", "CANCELED"))

// 排除年龄为18、20的用户
g.V().hasLabel("user").has("age", without(18, 20))

注意:所有主流Gremlin实现对参数格式要求一致,标准的集合类型(List、Array等)都可以直接传入within/without中,不需要额外做格式转换。

内容的提问来源于stack exchange,提问作者Thirumal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:48:01