Maison  >  Article  >  développement back-end  >  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
DDDoriginal
2024-10-31 02:06:29522parcourir

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>

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>

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