Avec l'avènement de l'ère du big data, les bases de données NoSQL sont devenues l'un des centres d'intérêt. MongoDB est l'un des meilleurs, c'est une base de données de documents NoSQL. En tant que langage de programmation efficace, Golang est également accepté par de plus en plus de personnes. Par conséquent, interroger MongoDB avec Golang est devenu une compétence très pratique.
Caractéristiques de MongoDB
MongoDB est une base de données de documents NoSQL open source à haute disponibilité écrite en langage C++. Ses fonctionnalités sont les suivantes :
1. Hautes performances : MongoDB prend en charge une concurrence élevée et peut facilement gérer la lecture et l'écriture à fort trafic. opérations.
Les caractéristiques ci-dessus font de MongoDB une base de données NoSQL à recommander. Mais pour les programmeurs qui utilisent le langage Golang, comment utiliser Golang pour interroger MongoDB ?
Golang exploite MongoDB
Il existe deux façons d'utiliser golang pour interagir avec MongoDB : utiliser le pilote mongo-go-driver officiellement fourni par MongoDB dans golang ; Cet article adoptera la première approche.
installation de mongo-go-driver
allez chercher go.mongodb.org/mongo-driver
go get go.mongodb.org/mongo-driver
导入包
import "go.mongodb.org/mongo-driver/mongo"
import "go.mongodb.org/mongo-driver/mongo "
Établir une connexion
func main() { // 设置客户端连接配置 clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 连接到MongoDB client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatalf("Could not connect to MongoDB: %v", err) } // 断开连接 defer func() { if err = client.Disconnect(context.Background()); err != nil { panic(err) } }() }
// 查询单条数据 func findOne() { collection := client.Database("test").Collection("users") filter := bson.M{"name": "John Doe"} var result bson.M if err := collection.FindOne(context.Background(), filter).Decode(&result); err != nil { log.Fatalf("Failed to find document: %v", err) } fmt.Println(result) } // 查询多条数据 func find() { collection := client.Database("test").Collection("users") filter := bson.M{"age": bson.M{"$gt": 18}} cur, err := collection.Find(context.Background(), filter) if err != nil { log.Fatalf("Failed to find documents: %v", err) } defer cur.Close(context.Background()) for cur.Next(context.Background()) { var result bson.M if err := cur.Decode(&result); err != nil { log.Fatalf("Failed to decode document: %v", err) } fmt.Println(result) } }
func insert() { collection := client.Database("test").Collection("users") user := bson.M{"name": "Alice", "age": 20, "email": "alice@example.com"} if _, err := collection.InsertOne(context.Background(), user); err != nil { log.Fatalf("Failed to insert document: %v", err) } }
func update() { collection := client.Database("test").Collection("users") filter := bson.M{"name": "John Doe"} update := bson.M{"$set": bson.M{"age": 28}} if _, err := collection.UpdateOne(context.Background(), filter, update); err != nil { log.Fatalf("Failed to update document: %v", err) } }
func delete() { collection := client.Database("test").Collection("users") filter := bson.M{"name": "Alice"} if _, err := collection.DeleteOne(context.Background(), filter); err != nil { log.Fatalf("Failed to delete document: %v", err) } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!