无法在neo4j中找到好的方法,所以请帮助我。
我有三种类型的对象:人,对象,观点。我想要一份最新意见的清单,有意见的人,对象。我能做到,这并不难。当我想在同一个查询中获得对相同对象有意见的人时,我的问题就开始了。
这就是我希望得到的结果:
..。诸若此类
发布于 2015-10-19 12:33:18
你不描述你的关系类型,所以我会编出来的。以下是您可能开始的方式:
MATCH (target:Person)-[:HAS_OPINION]->(target_opinion:Opinion)-[:ON]->(object:Object)<-[:ON]-(other_opinion:Opinion)<-[:HAS_OPINION]-(other_person:Person)
WHERE target.id = {target_id}目标可能是基于id/name/任何.
您可以通过几种方式返回数据。这可能是一个非正规化的结果:
MATCH (target:Person)-[:HAS_OPINION]->(target_opinion:Opinion)-[:ON]->(object:Object)<-[:ON]-(other_opinion:Opinion)<-[:HAS_OPINION]-(other_person:Person)
WHERE target.id = {target_id}
RETURN target, target_opinion, object, other_opinion, other_person或者,您可以每行返回一个目标,并将所有其他目标收集到一个对象数组中:
MATCH (target:Person)-[:HAS_OPINION]->(target_opinion:Opinion)-[:ON]->(object:Object)<-[:ON]-(other_opinion:Opinion)<-[:HAS_OPINION]-(other_person:Person)
WHERE target.id = {target_id}
RETURN
target,
target_opinion,
object,
collect({opinion: other_opinion, person: other_person}) AS othershttps://stackoverflow.com/questions/33213191
复制相似问题