Abrufen von MongoDB-Dokumenten nach Array von Objekt-IDs
In MongoDB ist es möglich, ein Array von Objekt-IDs (auch als _ids bezeichnet) zu speichern. innerhalb eines Dokuments. Um alle Dokumente, die diesen Objekt-IDs entsprechen, effizient abzurufen, verwenden Sie den Operator $in.
Frage:
Sie haben ein Array von hexadezimal codierten _ids:
ids := ["543d171c5b2c12420dd016", "543d171c5b2dd016"]
Wie rufen Sie die entsprechenden Dokumente mit mgo und bson ab?
Antwort:
Ihr erster Ansatz mit:
query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()
ist falsch, da die _ids als Objekt-IDs und nicht als Zeichenfolgen gespeichert werden. Um Dokumente nach Objekt-IDs abzurufen, müssen Sie die hexadezimal codierten Zeichenfolgen in bson.ObjectId-Objekte konvertieren:
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()
Dieser Code:
Das obige ist der detaillierte Inhalt vonWie rufe ich MongoDB-Dokumente über ein Array von Objekt-IDs mit mgo und bson ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!