Heim >Backend-Entwicklung >Golang >Wie frage ich MongoDB von Go aus mithilfe eines Arrays von Objekt-IDs ab?
Abfragen von MongoDB aus Go mithilfe eines Arrays von Objekt-IDs
In MongoDB können die IDs von Dokumenten in einem Array von Zeichenfolgen oder Objekten gespeichert werden Ausweise. Wenn Sie das MGO-Paket verwenden, um mehrere Dokumente basierend auf ihren in einem Array gespeicherten Objekt-IDs abzurufen, ist es wichtig, sicherzustellen, dass der richtige Ansatz befolgt wird.
Falsche Abfrage
Die bereitgestellte Abfrage:
query := bson.M{"_id": bson.M{"$in": ids}}
ist für Objekt-IDs nicht korrekt, da es sich bei ids um ein Array von Zeichenfolgen handelt. MongoDB erwartet Objekt-IDs für den $in-Operator.
Korrekte Abfrage für Objekt-IDs
Um in einem Array gespeicherte Objekt-IDs abzufragen, konvertieren Sie die Zeichenfolgen zuvor in Objekt-IDs Erstellen der Abfrage:
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}}
Die for-Schleife durchläuft das Array von Zeichenfolgen, konvertiert jede einzelne mithilfe von bson.ObjectIdHex(string) in eine Objekt-ID und speichert sie im Oids-Slice. Das resultierende Oids-Slice enthält die Objekt-IDs. Die Abfrage wird dann mithilfe des oids-Slices für den $in-Operator erstellt.
Durch die Verwendung der richtigen Abfrage für Objekt-IDs können Sie mit Go und dem mgo-Paket effizient mehrere Dokumente mit übereinstimmenden IDs aus MongoDB abrufen.
Das obige ist der detaillierte Inhalt vonWie frage ich MongoDB von Go aus mithilfe eines Arrays von Objekt-IDs ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!