Maison > développement back-end > Golang > Comment interroger des collections MongoDB non structurées dans Go avec mgo ?

Comment interroger des collections MongoDB non structurées dans Go avec mgo ?

Barbara Streisand
Libérer: 2024-12-26 08:44:14
original
565 Les gens l'ont consulté

How to Query Unstructured MongoDB Collections in Go with mgo?

Gestion des collections MongoDB non structurées dans Go avec mgo

Lors de l'interrogation d'une collection dans MongoDB avec mgo, il est possible de prédéfinir les données qui seront être renvoyé dans une structure, comme démontré avec l'exemple de structure Person fourni. Cependant, il peut y avoir des scénarios dans lesquels les documents de la collection ont un ensemble de clés variable.

Comment gérer les collections non structurées dans Go / mgo

Il existe plusieurs façons pour gérer les collections non structurées dans Go/mgo :

Utiliser un map :

En utilisant un type bson.M, qui est une map[string]interface{}, vous pouvez stocker les données du document directement sans définir de structure spécifique.

var m bson.M
err := collection.Find(nil).One(&m)
check(err)
for key, value := range m {
    fmt.Println(key, value)
}
Copier après la connexion

Utilisation d'une tranche de document :

bson.D est un type de tranche qui préserve l'ordre des clés et fournit un mécanisme efficace pour la gestion des documents.

var d bson.D
err := collection.Find(nil).One(&d)
check(err)
for i, elem := range d {
    fmt.Println(elem.Name, elem.Value)
}
Copier après la connexion

Utilisation d'un champ de carte en ligne :

En utilisant l'indicateur bson en ligne dans un champ de carte dans une structure, vous pouvez combiner le commodité d'utiliser une structure avec la flexibilité de gérer des champs inconnus.

type Person struct {
    ID        bson.ObjectId `bson:"_id,omitempty"`
    Name      string
    Phone     string
    Extra     bson.M `bson:",inline"`
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal