在我的数据库中,我有带有标签的产品。每个产品都有一个名为index的数组属性,其中包含标签中的所有单词。在Neo4j的最新更新之前,我可以使用以下不再有效的查询进行查询,我认为它可能已被弃用。
MATCH (p:Product)-[:has_tag]->(tag:Tag)
WHERE ALL (x IN ['game', 'action']
WHERE x IN p.index) RETURN p;
我得到了错误
Type mismatch: p already defined with
conflicting type Node (expected Collection<Any>)
如何使该查询起作用,以便在这种情况下可以找到同时带有“游戏”和“动作”的所有产品标签?
此类查询的性能如何?这是进行此类搜索的好方法,还是会变慢?
不知道为什么它不适用于当前版本,但是您可以这样做,
MATCH (p:Product)-[:has_tag]->(tag:Tag)
WHERE length(filter(x IN p.index WHERE x in ['game', 'action'])) = 2
RETURN p
假设索引中没有重复的标签
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句