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

Comment interroger MongoDB depuis Go avec un tableau d'ID d'objet ?

DDD
DDDoriginal
2024-11-03 00:42:29354parcourir

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

Interrogation de MongoDB depuis Go avec un tableau d'ID d'objet

Dans MongoDB, il est possible de récupérer des documents en fonction de leurs identifiants d'objet stockés dans un tableau avec l'opérateur $in et les packages mgo et bson.

Implémentation de la requête :

Pour effectuer la requête correctement, vous devez vous assurer que les identifiants d'objet dans le le tableau est au format correct. Si les documents sont stockés avec des ID de chaîne, la requête que vous avez fournie était exacte :

<code class="go">query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()</code>

Cependant, si les identifiants d'objet sont sous la forme de chaînes codées en hexadécimal (par exemple, "543d171c5b2c12420dd016"), vous avez besoin pour les convertir en objets bson.ObjectId avant de les utiliser dans la requête. Voici comment procéder :

<code class="go">oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}</code>

Cette modification garantit que la requête correspond aux identifiants d'objet stockés dans le tableau en tant qu'objets bson.ObjectId.

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