Maison > développement back-end > Golang > Comment interroger MongoDB depuis Go à l'aide d'un tableau d'ID d'objet ?

Comment interroger MongoDB depuis Go à l'aide d'un tableau d'ID d'objet ?

DDD
Libérer: 2024-10-29 20:06:02
original
196 Les gens l'ont consulté

How to Query MongoDB from Go Using an Array of Object IDs?

Interroger MongoDB depuis Go à l'aide d'un tableau d'ID d'objet

Dans MongoDB, les identifiants des documents peuvent être stockés dans un tableau de chaînes ou d'objets Pièces d'identité. Lorsque vous utilisez le package mgo pour récupérer plusieurs documents en fonction de leurs ID d'objet stockés dans un tableau, il est important de vous assurer que la bonne approche est suivie.

Requête incorrecte

La requête fournie :

query := bson.M{"_id": bson.M{"$in": ids}}
Copier après la connexion

n'est pas correcte pour les ID d'objet car ids est un tableau de chaînes. MongoDB attend des ID d'objet pour l'opérateur $in.

Requête correcte des ID d'objet

Pour interroger les ID d'objet stockés dans un tableau, convertissez les chaînes en ID d'objet avant construire la requête :

oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}
Copier après la connexion

La boucle for parcourt le tableau de chaînes, convertissant chacune d'elles en un ID d'objet à l'aide de bson.ObjectIdHex(string) et la stockant dans la tranche oids. La tranche oids résultante contiendra les ID d’objet. La requête est ensuite construite à l'aide de la tranche oids pour l'opérateur $in.

En utilisant la requête correcte pour les ID d'objet, vous pouvez récupérer efficacement plusieurs documents avec des ID correspondants à partir de MongoDB en utilisant Go et le package mgo.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal