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

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

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

How to Query MongoDB from Golang using an Array of Object IDs?

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

Dans MongoDB, vous pouvez stocker des tableaux de documents, chacun avec son propre _id unique . Cela vous permet d'associer plusieurs documents à un document parent. Lors de la recherche de ces documents à l'aide des packages mgo et bson de Golang, il est important de convertir le tableau _id au type approprié.

Solution

Si les valeurs _id du tableau sont simplement des chaînes hexadécimales, le code fourni est correct :

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

Cependant, si les valeurs _id sont des identifiants d'objet (ObjectId), vous devez les convertir dans le type approprié :

<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>
Copier après la connexion

Cette conversion est nécessaire car l'opérateur $in nécessite un tableau de valeurs ObjectId, pas des chaînes hexadécimales. En convertissant les chaînes hexadécimales en types ObjectId, vous pouvez interroger correctement les documents associés aux valeurs _id fournies.

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 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