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

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

DDD
DDDOriginal
2024-10-31 02:06:29522Durchsuche

How to Query MongoDB from Golang using an Array of Object IDs?

Abfragen von MongoDB aus Golang mithilfe eines Arrays von Objekt-IDs

In MongoDB können Sie Arrays von Dokumenten speichern, jedes mit seiner eigenen eindeutigen _id . Dadurch können Sie mehrere Dokumente einem übergeordneten Dokument zuordnen. Bei der Abfrage dieser Dokumente mit den Paketen mgo und bson von Golang ist es wichtig, das _id-Array in den entsprechenden Typ zu konvertieren.

Lösung

Wenn die _id-Werte im Array vorliegen Da es sich lediglich um Hex-Zeichenfolgen handelt, ist der bereitgestellte Code korrekt:

<code class="go">query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()</code>

Wenn die _id-Werte jedoch Objektbezeichner (ObjectId) sind, müssen Sie sie in den richtigen Typ konvertieren:

<code class="go">oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}</code>

Diese Konvertierung ist notwendig, da der $in-Operator ein Array von ObjectId-Werten erfordert, keine Hex-Strings. Durch Konvertieren der Hex-Strings in ObjectId-Typen können Sie die Dokumente, die den bereitgestellten _id-Werten zugeordnet sind, korrekt abfragen.

Das obige ist der detaillierte Inhalt vonWie frage ich MongoDB von Golang 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