Récupération de documents MongoDB par tableau d'ID d'objet
Dans MongoDB, il est possible de stocker un tableau d'ID d'objet (également appelés _ids) au sein d'un document. Pour récupérer efficacement tous les documents correspondant à ces ID d'objet, utilisez l'opérateur $in.
Question :
Vous disposez d'un tableau d'_ids codés en hexadécimal :
ids := ["543d171c5b2c12420dd016", "543d171c5b2dd016"]
Comment récupérer les documents correspondants en utilisant mgo et bson ?
Réponse :
Votre approche initiale en utilisant :
query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()
est incorrect car les _ids sont stockés sous forme d'ID d'objet, pas de chaînes. Pour récupérer des documents par ID d'objet, vous devez convertir les chaînes codées en hexadécimal en objets bson.ObjectId :
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}} c.Find(query).All()
Ce code :
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!