Connessione ad AuraDB e Neo4j in Go
AuraDB è un fully manage cloud service per Neo4j.
Volendo studiarmi un pò Neo4j, ed essendoci un piano gratuito, ho deciso di usare AuraDB.
Ma il codice dovrebbe funzionare anche nel caso di una istanza locale, in quanto la libreria è quella standard.
In questo articolo vediamo come connetterci al db in Go.
Prima di tutto installiamo la libreria apposita:
$ go get github.com/neo4j/neo4j-go-driver/v5
$ go mod tidy
Qui sotto un esempio di codice:
package main
import (
"context"
"fmt"
"os"
"github.com/neo4j/neo4j-go-driver/v5/neo4j"
)
func main() {
ctx := context.Background()
dbUri := "URL"
dbUser := "USER"
dbPassword := "PASSWORD"
driver, err := neo4j.NewDriverWithContext(
dbUri,
neo4j.BasicAuth(dbUser, dbPassword, ""))
if err != nil {
fmt.Println(err)
os.Exit(0)
}
defer driver.Close(ctx)
err = driver.VerifyConnectivity(ctx)
if err != nil {
fmt.Println(err)
os.Exit(0)
}
result, err := neo4j.ExecuteQuery(
ctx,
driver,
"MATCH (m:Movie) RETURN m.title AS title",
nil,
neo4j.EagerResultTransformer,
neo4j.ExecuteQueryWithDatabase("neo4j"))
if err != nil {
fmt.Println(err)
os.Exit(0)
}
for _, record := range result.Records {
title, _ := record.Get("title")
fmt.Println(title)
}
fmt.Printf("La query `%v` ha ritornato %v records in %+v.n",
result.Summary.Query().Text(), len(result.Records),
result.Summary.ResultAvailableAfter())
}
Enjoy!
go database auradb neo4j
Commentami!