json 如何表示与兄弟节点相关的Neo4J GoGM节点?

sf6xfgos  于 2023-04-13  发布在  Go
关注(0)|答案(1)|浏览(151)

我创建了一个图形数据库,其中一个节点可以与相同类型/标签的其他节点相关:我可以通过运行一个简单的查询来获得这样的节点:MATCH (n1:Node)-[]-(n2:Node) RETURN n1,n2
我使用GoGMv 2将Neo4J节点Map到对应的结构体。

type Node struct {
    // provides required node fields
    gogm.BaseNode

    Name        string        `gogm:"name=name" json:"name"`
    Siblings    []*Node       `gogm:"direction=both;relationship=RELATES_TO" json:"siblings"`
}

这是一个超级经典的图形,但是使用Marshal或Encode函数时,作为JSON的序列化失败了,因为它们不能表示循环结构(Marshal返回一个值错误:json: unsupported value: encountered a cycle via []*Node
是否有任何(重新)设计或实施的想法?

bihw5rsg

bihw5rsg1#

给予每个节点一个唯一的索引。
替换

Siblings    []*Node

std::vector<int> sibling_index

相关问题