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!