Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 正确使用放卷和收卷_Neo4j_Cypher - Fatal编程技术网

Neo4j 正确使用放卷和收卷

Neo4j 正确使用放卷和收卷,neo4j,cypher,Neo4j,Cypher,我正在尝试收集Neo4j中解开密码的每个迭代的ID列表。和往常一样,COLLECT收集所有ID以进行展开,然后将所有内容作为一个向量返回。但我想得到向量的向量 MATCH (property:Product)<-[:HAS_PRODUCT]-(s1:Session) WHERE property.products_id = 12345 with distinct s1.session_id as session_id limit 2 with collect (session_id) as

我正在尝试收集Neo4j中解开密码的每个迭代的ID列表。和往常一样,COLLECT收集所有ID以进行展开,然后将所有内容作为一个向量返回。但我想得到向量的向量

MATCH (property:Product)<-[:HAS_PRODUCT]-(s1:Session)
WHERE property.products_id = 12345
with distinct s1.session_id as session_id
limit 2
with collect (session_id) as session_ids


unwind session_ids as session_id
MATCH (property:Product)<-[contains:CONTAINS]-(target:Session {session_id: session_id})
with collect(distinct id(property)) as vector
return vector
session\u id
是两个session\u id的列表。每个会话id应该产生一个向量,所以对于2个会话id,我希望得到向量的向量

MATCH (property:Product)<-[:HAS_PRODUCT]-(s1:Session)
WHERE property.products_id = 12345
with distinct s1.session_id as session_id
limit 2
with collect (session_id) as session_ids


unwind session_ids as session_id
MATCH (property:Product)<-[contains:CONTAINS]-(target:Session {session_id: session_id})
with collect(distinct id(property)) as vector
return vector
如果我只运行一次这两个会话(即,不使用
展开
),我会得到如下所示的预期结果

[22238, 51257]
[22238, 25626, 51257]

通过使用
展开
,这就是我想要的。是否有任何解决方法可以只为
展开的每个迭代收集ID,因此您缺少的部分是分组键在聚合中的工作方式。非聚合项充当分组键,为将发出的行以及应用聚合的行提供上下文

您的collect()聚合没有其他术语,因此没有分组键,最终只有一个列表

如果希望collect()应用于每个会话\u id,则需要将会话\u id作为非聚合项包含,以便它可以用作聚合的分组键:

...
unwind session_ids as session_id
MATCH (property:Product)<-[contains:CONTAINS]-(target:Session {session_id: session_id})
with session_id, collect(distinct id(property)) as vector
return vector
。。。
将会话\u id作为会话\u id展开
匹配(属性:产品)