在我的数据库中,我有标记的产品。每个Product都有一个名为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>)
如何使此查询有效,以便在这种情况下,我可以找到所有带有“游戏”和“操作”的产品标记?
此类查询的性能如何,这是一种很好的方式来进行这种搜索,还是会变慢?
答案 0 :(得分:1)
不确定为什么它不适用于当前版本,但您可以这样做,
MATCH (p:Product)-[:has_tag]->(tag:Tag)
WHERE length(filter(x IN p.index WHERE x in ['game', 'action'])) = 2
RETURN p
假设索引中没有重复的标签