Heim >Backend-Entwicklung >Golang >Wie frage ich MongoDB von Go aus mithilfe eines Arrays von Objekt-IDs ab?

Wie frage ich MongoDB von Go aus mithilfe eines Arrays von Objekt-IDs ab?

DDD
DDDOriginal
2024-10-29 20:06:02197Durchsuche

How to Query MongoDB from Go Using an Array of Object IDs?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn