Neo4j GraphQL迁移后connect创建关联返回relationshipsCreated为0如何解决
问题常见原因
1. 数组类型关系connect参数格式错误
things字段定义为[Thing]数组类型,在多数@neo4j/graphql版本中,数组类型关系的connect入参要求传入数组格式,单对象入参会被识别为无效参数,直接跳过关联创建逻辑,最终返回relationshipsCreated: 0。
2. 目标节点筛选不匹配
需确认$thingId对应的Thing节点真实存在,且筛选使用的id字段是Thing类型定义的主键字段。如果Thing的主键为其他字段,对应筛选条件也需要同步修改。
3. 权限限制
如果架构开启了权限控制,需确认当前操作角色具备两种节点类型的关系创建权限,权限不足时会无报错返回0条关联创建结果。
正确写法
mutation ADD_THING_TO_PLAYLIST($playlistId: ID!, $thingId: ID!){ updatePlaylists( where: { id: $playlistId }, connect: { things: [ { where: { node: { id: $thingId } } } ] } ){ playlists { id things { id } } info { relationshipsCreated } } }
若上述写法仍未生效,可补充Thing类型的反向关系定义,确保关系映射完整:
type Thing { id: ID! # 其余自定义字段 playlists: [Playlist] @relationship(type: "HAS_THING", direction: IN) }
内容的提问来源于stack exchange,提问作者Thingamajig
相关产品推荐
相关产品推荐

