Apprenez les fonctions de base de données en langage Go et implémentez les opérations d'ajout, de suppression, de modification et de requête des données MongoDB
Introduction :
Le langage Go est un langage de programmation efficace, concis et facile à apprendre en raison de ses performances de concurrence supérieures et. riche bibliothèque standard, elle devient de plus en plus populaire. De plus en plus de développeurs choisissent de l'utiliser pour développer diverses applications. Lors du développement d’applications, l’interaction avec la base de données est une exigence très courante. Cet article expliquera comment utiliser les fonctions de base de données fournies par le langage Go et montrera comment implémenter les opérations d'ajout, de suppression, de modification et de requête des données MongoDB.
1. Préparation
Avant de commencer, nous devons installer le pilote MongoDB du langage Go. Vous pouvez utiliser la commande suivante pour installer :
go get go.mongodb.org/mongo-driver/mongo
2. Connectez-vous à la base de données
Tout d'abord, nous devons nous connecter à la base de données MongoDB dans le code. Utilisez l'exemple de code suivant pour vous connecter :
package main
import (
"context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
// 设置mongo连接选项 clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 连接到MongoDB client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatal(err) } // 检查连接 err = client.Ping(context.Background(), nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 设置超时时间 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() // 关闭连接 err = client.Disconnect(ctx) if err != nil { log.Fatal(err) } fmt.Println("Disconnected from MongoDB!")
}
Dans le code ci-dessus, nous définissons d'abord les options de connexion, puis appelons mongo.Connect ( ) fonction pour se connecter à la base de données. Utilisez ensuite client.Ping() pour vérifier si la connexion réussit. Enfin, nous définissons le délai d'attente et fermons la connexion à la base de données à l'aide de la fonction client.Disconnect().
3. Insérer des données
Nous apprendrons ensuite comment insérer des données dans la base de données MongoDB. Utilisez l'exemple de code suivant pour l'insertion :
package main
import (
"context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options"
)
type Person struct {
Name string Email string
}
func main() {
// 连接到MongoDB clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatal(err) } // 检查连接 err = client.Ping(context.Background(), nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 获取集合 collection := client.Database("test").Collection("people") // 创建一个Person结构体实例 person := Person{Name: "张三", Email: "zhangsan@example.com"} // 插入一条文档 insertResult, err := collection.InsertOne(context.Background(), person) if err != nil { log.Fatal(err) } fmt.Println("Inserted a single document: ", insertResult.InsertedID) // 设置超时时间 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() // 关闭连接 err = client.Disconnect(ctx) if err != nil { log.Fatal(err) } fmt.Println("Disconnected from MongoDB!")
}
Dans le code ci-dessus, nous créons Une structure nommée Person est créée et une instance de structure Person est créée dans la fonction main(). Nous insérons ensuite l'instance dans la base de données MongoDB via la fonction collection.InsertOne(). Une fois l'insertion réussie, imprimez l'ID du document inséré.
4. Interroger des données
Ensuite, nous apprendrons comment interroger les données de la base de données MongoDB. Utilisez l'exemple de code suivant pour les opérations de requête :
package main
import (
"context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options"
)
type Person struct {
Name string Email string
}
func main() {
// 连接到MongoDB clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatal(err) } // 检查连接 err = client.Ping(context.Background(), nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 获取集合 collection := client.Database("test").Collection("people") // 查询一条文档 var result Person filter := bson.D{{"name", "张三"}} err = collection.FindOne(context.Background(), filter).Decode(&result) if err != nil { log.Fatal(err) } fmt.Println("Found a single document: ", result) // 设置超时时间 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() // 关闭连接 err = client.Disconnect(ctx) if err != nil { log.Fatal(err) } fmt.Println("Disconnected from MongoDB!")
}
Dans le code ci-dessus, nous use La fonction collection.FindOne() interroge un document nommé "Zhang San". Les résultats de la requête sont décodés dans la variable de résultat et imprimés.
5. Mettre à jour les données
Ci-dessous, nous apprendrons comment mettre à jour les données dans la base de données MongoDB. Utilisez l'exemple de code suivant pour l'opération de mise à jour :
package main
import (
"context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options"
)
type Person struct {
Name string Email string
}
func main() {
// 连接到MongoDB clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatal(err) } // 检查连接 err = client.Ping(context.Background(), nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 获取集合 collection := client.Database("test").Collection("people") // 设置更新条件 filter := bson.D{{"name", "张三"}} // 设置更新内容 update := bson.D{ {"$set", bson.D{ {"email", "zhangsan@example.com"}, }}, } // 更新一条文档 updateResult, err := collection.UpdateOne(context.Background(), filter, update) if err != nil { log.Fatal(err) } fmt.Println("Updated a single document: ", updateResult) // 设置超时时间 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() // 关闭连接 err = client.Disconnect(ctx) if err != nil { log.Fatal(err) } fmt.Println("Disconnected from MongoDB!")
}
Dans le code ci-dessus, nous utilisons La fonction collection.UpdateOne() met à jour le champ email d'un document nommé "Zhang San". Après la mise à jour, imprimez les résultats de la mise à jour.
6. Supprimer des données
Enfin, nous apprendrons comment supprimer des données de la base de données MongoDB. Utilisez l'exemple de code suivant pour effectuer l'opération de suppression :
package main
import (
"context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options"
)
type Person struct {
Name string Email string
}
func main() {
// 连接到MongoDB clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { log.Fatal(err) } // 检查连接 err = client.Ping(context.Background(), nil) if err != nil { log.Fatal(err) } fmt.Println("Connected to MongoDB!") // 获取集合 collection := client.Database("test").Collection("people") // 设置删除条件 filter := bson.D{{"name", "张三"}} // 删除一条文档 deleteResult, err := collection.DeleteOne(context.Background(), filter) if err != nil { log.Fatal(err) } fmt.Println("Deleted a single document: ", deleteResult) // 设置超时时间 ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() // 关闭连接 err = client.Disconnect(ctx) if err != nil { log.Fatal(err) } fmt.Println("Disconnected from MongoDB!")
}
Dans le code ci-dessus , nous utilisons La fonction collection.DeleteOne() supprime un document nommé "Zhang San". Après la suppression, imprimez les résultats de la suppression.
Résumé :
Cet article présente comment utiliser les fonctions de base de données en langage Go et implémente les opérations d'ajout, de suppression, de modification et de requête des données MongoDB. En étudiant cet article, nous pouvons mieux comprendre la combinaison du langage Go et de MongoDB. Nous espérons qu'il sera utile aux lecteurs lors de l'utilisation du langage Go pour les opérations de base de données.
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!