Se i documenti sono archiviati con ID stringa, il codice sembra corretto.
Gli ID sembrano ID oggetto con codifica esadecimale. Se gli identificatori di oggetto sono ID oggetto, è necessario convertire le stringhe esadecimali in ID oggetto:
oids := make([]bson.ObjectId, len(ids))
for i := range ids {
oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}