我需要在一组节点之间创建边,但不能保证边不存在,我需要知道已经创建了哪些边,这样我就可以增加两个连接节点的边计数器。
我想知道每个节点的边数,而不需要每次都查询图形。
示例:
MERGE (u:user {id:999049043279872})
MERGE (g1:group {id:346709075951616})
MERGE (g2:group {id:346709075951617})
MERGE (g1)-[m1:member]->(u)
MERGE (g2)-[m2:member]->(u)
有时用户已经是该组的成员,所以在这种情况下我不想增加计数器。
我尝试使用结果统计信息,但它只返回创建的关系编号,我还考虑过使用映射,然后在MERGE
:之后使用ON CREATE SET
填充内容
WITH {g1:0, g2:0} as res
MERGE (u:user {id:999049043279872})
MERGE (g1:group {id:346709075951616})
MERGE (g2:group {id:346709075951617})
MERGE (g1)-[m1:member]->(u)
ON CREATE SET res.g1 = 1
MERGE (g2)-[m2:member]->(u)
ON CREATE SET res.g2 = 1
RETURN res
但它不起作用;服务器在执行查询后立即崩溃。
例外:
------快速内存测试------
17235:M 2022年2月28日16:56:50.016#主线程终止
172 35:M 2020年2月8日16:56:50.017#作业类型#0的生物线程终止
17235:M 2022年2日28日16:56-50.017#任务类型#1的生物线程结束
2022年2月份28日17235_M 16:56:550.018#作业类型#2的生物线程已终止快速记忆测试通过,但你的记忆仍然可能被破坏
如果可能的话,请运行几个小时的内存测试。------EIP周围的转储代码------
符号:(null((基:(nil((
模块:/lib/x86_64-linux-gnu/libc.so.6(基0x7fbfe3dcc000(
$xxd-r-p/tmp/dump.hex/tmp/dmp.bin
$objdump--调整vma=(nil"-D-b二进制-m i386:x86-64/tmp/dump.bin===REDIS错误报告结束。确保包括从开始到结束。===
请在github:上打开问题报告崩溃
http://github.com/redis/redis/issues
怀疑RAM错误?使用redis服务器——测试内存来验证它。
分段故障
有什么想法吗?
提前感谢
Neo4j已经在每个节点内存储了一个计数器,用于计算关系的数量并提供快速计数访问。当你想得到一个小组的成员数量时,你可以简单地做:
MATCH (g:group)
return size((g)<-[:member]-())