Ces dernières années, Golang a été de plus en plus utilisé dans le domaine du développement. En tant que base de données de documents très populaire, MongoDB est très pratique pour interroger, ajouter, mettre à jour et supprimer des données rapidement et facilement via Golang sans avoir besoin d'instructions SQL lourdes. Cet article explique comment utiliser Golang pour interroger la base de données MongoDB.
1. Installez MongoDB
Avant d'utiliser MongoDB, vous devez d'abord installer MongoDB. Téléchargez-le et installez-le depuis le site officiel. Après une installation réussie, vous pouvez démarrer le service MongoDB localement. Pour plus de détails, veuillez vous référer à la documentation officielle.
2. Installez le pilote MongoDB
Golang ne fournit pas officiellement de pilote MongoDB Vous pouvez utiliser la bibliothèque tierce officiellement recommandée "mongo-go-driver". Exécutez la commande suivante dans le terminal pour installer :
go get go.mongodb.org/mongo-driver/mongo
go get go.mongodb.org/mongo-driver/mongo
三、连接 MongoDB
在使用 Golang 操作 MongoDB 之前,需要先建立一个 MongoDB 客户端连接。可以参考以下示例代码:
import ( "context" "fmt" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) func main() { // 配置客户端 clientOptions := options.Client().ApplyURI("mongodb://localhost:27017") // 连接 MongoDB client, err := mongo.Connect(context.Background(), clientOptions) if err != nil { fmt.Println("MongoDB Connect Error:", err) return } // 关闭连接 defer func() { if err = client.Disconnect(context.Background()); err != nil { panic(err) } }() }
四、查询 MongoDB 数据
连接成功后,就可以开始查询 MongoDB 数据库中的数据。
collection := client.Database("mydb").Collection("mycollection") filter := bson.M{"name": "张三"} var result bson.M if err = collection.FindOne(context.Background(), filter).Decode(&result); err != nil { return }
通过 FindOne() 方法查询指定条件的单个文档,参数 filter
为查询条件,本例中查询条件为 {“name”:“张三”}
。执行结果会将文档结果保存在变量 result
中,并且返回错误信息。
collection := client.Database("mydb").Collection("mycollection") filter := bson.M{"age": bson.M{"$gte":18}} cursor, err := collection.Find(context.Background(), filter) if err != nil { return } var results []bson.M if err = cursor.All(context.Background(), &results); err != nil { return }
通过 Find() 方法查询指定条件的多个文档,参数 filter
为查询条件,本例中查询条件为 {“age”: {“$gte”:18}}
,表示查询年龄大于等于 18 岁的所有文档。执行结果会将所有的文档结果保存在变量 results
collection := client.Database("mydb").Collection("mycollection") filter := bson.M{"name": "张三"} var result bson.M if err = collection.FindOne(context.Background(), filter).Decode(&result); err != nil { return } age := result["age"].(int)
filter
est la condition de requête. Dans cet exemple, la condition de requête est. {"name" :"Zhang San"}
. Le résultat de l'exécution enregistrera le résultat du document dans la variable result
et renverra un message d'erreur. 🎜filter
est la condition de requête. la condition de requête est {"age": {"$gte":18}}
signifie interroger tous les documents dont l'âge est supérieur ou égal à 18 ans. Le résultat de l'exécution enregistrera tous les résultats du document dans la variable results
et renverra un objet curseur. 🎜🎜🎜Récupérer un seul document🎜🎜rrreee🎜Le résultat de la requête est de type bson.M Si vous souhaitez récupérer un certain champ, vous devez d'abord le convertir dans son type correspondant avant utilisation. 🎜🎜L'exemple de code ci-dessus ne présente que brièvement comment utiliser Golang pour interroger la base de données MongoDB. Il existe de nombreuses façons d'utiliser MongoDB. Vous pouvez consulter la documentation officielle de MongoDB pour plus de détails. Dans le même temps, Golang s'appuie sur ses capacités de traitement simultané efficaces. Les étudiants qui aiment Golang peuvent essayer d'utiliser Golang et MongoDB pour créer un système de base de données distribuée hautes performances. 🎜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!