【发布时间】:2019-10-16 02:51:18
【问题描述】:
我不知道如何在 Gremlin 中重写我的 Cypher 脚本。
首先,我们使用 .Net Neo4j 客户端连接到我们的 Neo4j 数据库并在其上运行 Cypher 查询。然后我们决定添加一个抽象层并连接到 Gremlin 服务器(目前,它托管相同的 Neo4j 数据库)。所以现在我需要将我们的查询从 Cypher 翻译成 Gremlin,我发现这相当困难。
这是其中之一:
MATCH (pc:ProductCategory)-[:HasRootCategory]->(r:RootCategory)
WHERE NOT (:ProductCategory)-[]->(pc)
AND pc.Id = r.RootId
RETURN pc;
我失败的尝试之一:
g.V().match(as("pc").out("HasRootCategory").as("r"),as("pc").in().has('label', 'ProductCategory').count().is(0))).select("pc", "r").where("pc.Id", eq("r.RootId")).select("pc")
我在stackoverflow上找到了一个使用这个'match(as'结构的例子,但它必须被弃用,因为我遇到了一个错误。另外,不知道如何在具有不同标签的节点上比较具有不同名称的属性(我确定“哪里”是错误的......)
任何帮助将不胜感激。
【问题讨论】: