Maison  >  Article  >  développement back-end  >  Comment utiliser mgo pour interroger MongoDB dans Golang

Comment utiliser mgo pour interroger MongoDB dans Golang

PHPz
PHPzoriginal
2023-04-25 18:28:12603parcourir

Dans Golang, interroger MongoDB est une tâche très importante. mgo est un pilote MongoDB très populaire qui fournit une API riche pour les opérations CRUD. Cet article explique comment utiliser mgo pour interroger MongoDB.

Installer mgo

Pour utiliser mgo, vous devez d'abord l'installer. Il peut être installé à l'aide de la commande go get. Ouvrez un terminal et exécutez la commande suivante :

go get gopkg.in/mgo.v2

Cela téléchargera mgo depuis le référentiel Github et l'ajoutera au fournisseur dans le Projet Golang dans le répertoire.

Importer le package mgo

Lorsque vous utilisez mgo dans le code, vous devez importer son package. Vous pouvez écrire le code suivant en haut du fichier pour importer le package mgo et créer un alias pour celui-ci.

import (

"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"

)

Interrogation de documents dans une collection

L'interrogation de MongoDB commence par l'interrogation d'un document de collection. À l'aide de la méthode Find() de mgo.Collection, vous pouvez interroger les documents de la collection. Voici quelques exemples de requêtes de base.

  1. Interroger tous les documents

Si vous ne souhaitez ajouter aucun filtrage conditionnel, vous pouvez utiliser la méthode Find() pour tout renvoyer documents de la collection.

func getAllEmployees() ([]Employé, erreur) {

session := GetSession()
defer session.Close()

collection := session.DB("company").C("employees")
var employees []Employee
err := collection.Find(nil).All(&employees)

return employees, err

}

Dans le code ci-dessus, la méthode session.DB() Utilisé pour ouvrir une base de données et sélectionner la collection sur laquelle opérer. La méthode Find() renvoie un curseur qui peut être utilisé pour récupérer tous les documents répondant aux critères. La méthode All() lit tous les documents dans la tranche spécifiée et renvoie une erreur.

  1. Filtrage conditionnel

Vous pouvez filtrer les documents renvoyés en passant un document conditionnel. Voici un exemple d'interrogation d'employés dont le salaire est supérieur à 1 000 :

func getEmployeesWithSalaryGreaterThan1000() ([]Employé, erreur) {

session := GetSession()
defer session.Close()

collection := session.DB("company").C("employees")
var employees []Employee
err := collection.Find(bson.M{"salary": bson.M{"$gt": 1000}}).All(&employees)

return employees, err

}

# 🎜🎜# Dans le code ci-dessus, bson.M représente le document dans MongoDB. Le document de condition généré est

{

"salary": { "$gt": 1000 }
}

Les conditions ci-dessus filtreront tous les employés dont le salaire est supérieur à 1 000 $. Dans la méthode Find(), passez le document conditionnel en paramètre. L'opérateur $gt signifie supérieur à.

    Renvoyer uniquement des champs spécifiques
En utilisant la méthode Select(), vous pouvez spécifier les champs à renvoyer. Comme indiqué ci-dessous :

func getEmployeeNameAndAge() ([]Employee, error) {

session := GetSession()
defer session.Close()

collection := session.DB("company").C("employees")
var employees []Employee
err := collection.Find(nil).Select(bson.M{"name": 1, "age": 1}).All(&employees)

return employees, err
}

Dans le code ci-dessus, sélectionnez ( ) La méthode est utilisée pour sélectionner les champs à retourner. Dans cet exemple, le nom et l'âge sont renvoyés.

Remarque : Au moins un champ doit être défini sur 1. Si tous les champs sont définis sur 0, la requête renverra un document vide.

    Paging
Utilisez les méthodes Skip() et Limit() pour paginer les résultats. Comme indiqué ci-dessous :

func getPaginatedEmployees(page int, limit int) ([]Employé, erreur) {

session := GetSession()
defer session.Close()

collection := session.DB("company").C("employees")
var employees []Employee
err := collection.Find(nil).Skip((page - 1) * limit).Limit(limit).All(&employees)

return employees, err
}

sur ce qui précède Dans le code, la méthode Skip() est utilisée pour ignorer un nombre spécifié de documents et la méthode Limit() spécifie le nombre de documents à renvoyer.

Résumé

Cet article explique comment utiliser mgo pour interroger MongoDB dans Golang. Interrogez les documents de la collection à l'aide de la méthode Find() et limitez les documents renvoyés en transmettant les options de filtrage et de pagination. Utilisez la méthode Select() pour renvoyer uniquement des champs spécifiques. mgo fournit également d'autres méthodes et options de requête qui peuvent être utilisées selon les besoins.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn