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
readWritesobre la base y el ficheropki/ca.pemdel clúster.
Instala el driver
Shell
go get go.mongodb.org/mongo-driver/v2/mongoGuarda 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=trueen la cadena. - El driver no confía en el certificado del nodo porque no tiene la CA de este clúster.