Go

Conecta una aplicación de Go a TeselaDB con el driver oficial de MongoDB.

Conecta una aplicación de Go a TeselaDB con el driver oficial de MongoDB para Go. TeselaDB se presenta como un mongos, así que el driver funciona sin cambios.

Requisitos

  • Go con módulos.
  • La dirección de uno o más nodos, un usuario con readWrite sobre la base y el fichero pki/ca.pem del clúster.

Instala el driver

Shell
go get go.mongodb.org/mongo-driver/v2/mongo

Guarda la cadena de conexión

Pon la cadena en una variable de entorno y no la escribas en el código:

Shell
export TESELADB_URI="mongodb://usuario:<contraseña>@node-01:27017,node-02:27017/shop?tls=true&tlsCAFile=./ca.pem"

Escribe y lee un documento

Go
package main

import (
	"context"
	"fmt"
	"log"
	"os"

	"go.mongodb.org/mongo-driver/v2/bson"
	"go.mongodb.org/mongo-driver/v2/mongo"
	"go.mongodb.org/mongo-driver/v2/mongo/options"
)

func main() {
	client, err := mongo.Connect(options.Client().ApplyURI(os.Getenv("TESELADB_URI")))
	if err != nil {
		log.Fatal(err)
	}
	defer client.Disconnect(context.Background())

	orders := client.Database("shop").Collection("orders")
	if _, err := orders.InsertOne(context.Background(), bson.M{"total": 149.5}); err != nil {
		log.Fatal(err)
	}
	count, err := orders.CountDocuments(context.Background(), bson.M{})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(count)
}

Comprobar

El programa escribe el número de documentos de orders, que crece en uno cada vez que lo ejecutas.

Problemas frecuentes

  • La conexión se cierra antes de autenticar porque falta tls=true en la cadena.
  • El driver no confía en el certificado del nodo porque no tiene la CA de este clúster.

Ver también