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!