Connessione ad AuraDB e Neo4j in Go

Mattepuffo's logo
Connessione ad AuraDB e Neo4j in Go

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!


Condividi

Commentami!