gpt4 book ai didi

json - 将 neo4j 结果解码为 Golang 中的嵌套结构

转载 作者:IT王子 更新时间:2023-10-29 02:15:50 24 4
gpt4 key购买 nike

我正在使用 neoism 库 ( https://github.com/jmcvetta/neois ) 与本地 neo4j 数据库对话 - 我是新手,也是 neo4j 的新手,所以我的理解差距可能存在于问题的任何一方。

我有一个简单的数据库,一个与单个"template"节点相关的“页面”节点。我希望能够让结构代表每个节点并将它们嵌套在彼此之中,但我正在努力让它发挥作用。

创建简单的数据库:

template, err := ioutil.ReadFile(viewPath + "templates/default.mustache")

if err != nil{
panic(err)
}

defaultTemplate, _ := db.CreateNode(neoism.Props{
"name": "default",
"content": string(template),
})

defaultTemplate.AddLabel("Template")

n0, _ := db.CreateNode(neoism.Props{
"name": "Home",
"slug": "home",
"title": "Home Page",
"content" : "here I am",
})

n0.AddLabel("Page")
n0.Relate("TEMPLATE", template.Id(), neoism.Props{})

现在开始尝试取回数据......

这是我的查询,效果很好:

type PageStruct struct{
Name string `json:"p.name"`
Slug string `json:"p.slug"`
Title string `json:"p.title"`
Content string `json:"p.content"`
TemplateName string `json:"t.name"`
TemplateContent string `json:"t.content"`

}

res := []PageStruct{}

cq := neoism.CypherQuery{
Statement: `
MATCH (p:Page)-[r:TEMPLATE]->(t:Template)
WHERE p.slug = {slug}
RETURN p.name, p.slug, p.title, p.content, t.name, t.content
`,
Parameters: neoism.Props{"slug": pageSlug},
Result: &res,
}

db.Cypher(&cq)
page := res[0]

但理想情况下,我想要的是解码为嵌套结构,如下所示:

    type PageStruct struct{
Name string `json:"p.name"`
Slug string `json:"p.slug"`
Title string `json:"p.title"`
Content string `json:"p.content"`
Template struct {
Name string `json:"t.name"`
Content string `json:"t.content"`
} `json:"t"`

}

我一直在尝试各种事情但都没有成功,任何人都可以给我任何关于如何实现计算机工程这一艰巨壮举的建议......

此外,我不太清楚如何处理 neo4j 中的关系,因为没有强制执行(我知道)关系类型(例如一对一,一对-很多)那么如何处理这个 - 我们是否总是假设一个数据数组?

非常感谢任何帮助/建议。

最佳答案

使用embedding .

type Page struct {
Name string `json:"p.name"`
// ...
Template
}

type Template struct {
Name string `json:"t.name"`
// ...
}

Playground :http://play.golang.org/p/B3ro3wgsGS .

关于json - 将 neo4j 结果解码为 Golang 中的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31339950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com