在 Neo4J 中使用条件过滤列表
FIlter the list with a condition in Neo4J
假设我有一个 table 这种
| Type | Name | Status |
| -------- | -------------- | -------- |
| ["Thriller" , "Horror"] | Conjuring | Released |
| ["Action" , "Thriller"] | Evil Dead | Released |
| ["Drama" , "Thriller"] | XYZ | Released |
我想检索不是 Thriller 的行。换句话说,我想做类似 Type.filter(item => item != "Thriller")
我如何在 Neo4J 中执行此操作?
预期结果
| Type | Name |
| -------- | -------------- |
| "Horror" | Conjuring |
| "Action" | Evil Dead |
| "Drama" | XYZ |
Cypher 有一个列表理解语法:
[x in type WHERE x <> "Thriller" | x]
在文档中查找更多信息:https://neo4j.com/docs/cypher-manual/current/syntax/lists/#cypher-list-comprehension
如果你想使用 APOC,调用函数:apoc.coll.removeAll
语法:apoc.coll.removeAll([first], [second]) - returns“first”列表删除了“second”列表的所有元素
Ref:
https://neo4j.com/labs/apoc/4.1/overview/apoc.coll/apoc.coll.removeAll/
RETURN apoc.coll.removeAll(Type, "Thriller") as Type, Name
我可以使用这段密码查询来修复此功能
RETURN DISTINCT [x in Type WHERE x <> "Thriller"][0] as Type
假设我有一个 table 这种
| Type | Name | Status |
| -------- | -------------- | -------- |
| ["Thriller" , "Horror"] | Conjuring | Released |
| ["Action" , "Thriller"] | Evil Dead | Released |
| ["Drama" , "Thriller"] | XYZ | Released |
我想检索不是 Thriller 的行。换句话说,我想做类似 Type.filter(item => item != "Thriller")
我如何在 Neo4J 中执行此操作?
预期结果
| Type | Name |
| -------- | -------------- |
| "Horror" | Conjuring |
| "Action" | Evil Dead |
| "Drama" | XYZ |
Cypher 有一个列表理解语法:
[x in type WHERE x <> "Thriller" | x]
在文档中查找更多信息:https://neo4j.com/docs/cypher-manual/current/syntax/lists/#cypher-list-comprehension
如果你想使用 APOC,调用函数:apoc.coll.removeAll
语法:apoc.coll.removeAll([first], [second]) - returns“first”列表删除了“second”列表的所有元素
Ref: https://neo4j.com/labs/apoc/4.1/overview/apoc.coll/apoc.coll.removeAll/
RETURN apoc.coll.removeAll(Type, "Thriller") as Type, Name
我可以使用这段密码查询来修复此功能
RETURN DISTINCT [x in Type WHERE x <> "Thriller"][0] as Type