猿问

我可以使用 Go 连接到 Memgraph 吗?

我想从 Go 连接到 Memgraph 数据库的运行实例。我正在使用 Docker 并安装了 Memgraph 平台。我到底需要做什么?



烙印99
浏览 79回答 1
1回答

紫衣仙女

从 Go 连接到 Memgraph 的过程相当简单。为此,您需要使用 Bolt 协议。以下是所需的步骤:首先,为您的应用程序创建一个新目录,/MyApp并将您自己定位在其中。program.go接下来,使用以下代码创建一个文件:package mainimport (    "fmt"    "github.com/neo4j/neo4j-go-driver/v4/neo4j")func main() {    dbUri := "bolt://localhost:7687"    driver, err := neo4j.NewDriver(dbUri, neo4j.BasicAuth("username", "password", ""))    if err != nil {        panic(err)    }    // Handle driver lifetime based on your application lifetime requirements  driver's lifetime is usually    // bound by the application lifetime, which usually implies one driver instance per application    defer driver.Close()    item, err := insertItem(driver)    if err != nil {        panic(err)    }    fmt.Printf("%v\n", item.Message)}func insertItem(driver neo4j.Driver) (*Item, error) {    // Sessions are short-lived, cheap to create and NOT thread safe. Typically create one or more sessions    // per request in your web application. Make sure to call Close on the session when done.    // For multi-database support, set sessionConfig.DatabaseName to requested database    // Session config will default to write mode, if only reads are to be used configure session for    // read mode.    session := driver.NewSession(neo4j.SessionConfig{})    defer session.Close()    result, err := session.WriteTransaction(createItemFn)    if err != nil {        return nil, err    }    return result.(*Item), nil}func createItemFn(tx neo4j.Transaction) (interface{}, error) {    records, err := tx.Run(        "CREATE (a:Greeting) SET a.message = $message RETURN 'Node ' + id(a) + ': ' + a.message",        map[string]interface{}{"message": "Hello, World!"})    // In face of driver native errors, make sure to return them directly.    // Depending on the error, the driver may try to execute the function again.    if err != nil {        return nil, err    }    record, err := records.Single()    if err != nil {        return nil, err    }    // You can also retrieve values by name, with e.g. `id, found := record.Get("n.id")`    return &Item{        Message: record.Values[0].(string),    }, nil}type Item struct {    Message string}现在,go.mod使用go mod init example.com/hello命令创建一个文件。我之前提到过 Bolt 驱动器。您需要添加它go get github.com/neo4j/neo4j-go-driver/v4@v4.3.1。你可以运行你的程序go run .\program.go。
随时随地看视频慕课网APP

相关分类

Go
我要回答