gpt4 book ai didi

neo4j - 当属性名称是参数时如何查询属性值?

转载 作者:行者123 更新时间:2023-12-02 02:56:46 25 4
gpt4 key购买 nike

通常我们可以查询属性值,例如:

Match (n:Product)
where n.name="iPhone X"
return n

但是,就我而言,我不知道应该匹配哪个属性,但我只知道值,在这种情况下,属性名称变成了一种变量。我想要这样的东西:
Match (n:Product)
where n.{name}="iPhone X"
return n

或与关系变量 r:
Match (n:Product)-[{r}]->(c:Color {name:'white'})

在这两种情况下,在我的应用程序中,我都知道一些属性或关系 事先,不知道它应该匹配哪个属性。

此查询是否基于 Neo4j 或 spring-data-neo4j 中支持的属性或关系值?

最佳答案

看看这个例子:

CREATE (:Node {name : 'Bruno'})-[r:REL_TYPE]->()

设置 Neo4j 浏览器参数:
:param {prop : 'name', rel_type : 'REL_TYPE'}

然后查询:
MATCH (n:Node) 
WHERE n[{prop}] = "Bruno"
RETURN n

结果:
╒════════════════╕
│"n" │
╞════════════════╡
│{"name":"Bruno"}│
└────────────────┘

即:您可以将属性名称用作 WHERE 中方括号括起来的键。条款。

按动态关系类型查询的解决方法可以使用 type()函数,这样:
MATCH (:Node)-[r]->()
WHERE type(r) = {rel_type}
return r

关于neo4j - 当属性名称是参数时如何查询属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48912487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com