如何解决Neo4j比较两个数组,Cypher查询
是否有一种方法可以比较Neo4j
密码查询中的两个数组?我已经为每个amenities
创建了一些房地产,它们都是用逗号分隔的字符串属性。
我需要获取所有标记为Estate
的节点,其中amenities split
包含array parameter
。
MATCH (e:Estate)
WHERE (a IN ["Laundry","Dryer"] WHERE a IN SPLIT(e.amenities,","))
RETURN e
如何实现?
解决方法
-
对于您的用例,更新
amenities
以包含字符串的 list 而不是单个逗号分隔的字符串会更加有效。这样,您的查询完全不需要使用SPLIT
。在以下示例中,我将继续使用SPLIT(e.amenities,",")
,但理想情况下应将其替换为e.amenities
。 -
如果要测试
amenities
是否包含列表中的 all 个值,可以使用ALL函数:MATCH (e:Estate) WHERE ALL(a IN ["Laundry","Dryer"] WHERE a IN SPLIT(e.amenities,")) RETURN e
-
如果要测试
amenities
是否包含列表中的任何个值,可以使用ANY函数:MATCH (e:Estate) WHERE ANY(a IN ["Laundry",")) RETURN e
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。