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