RunCommand
est d'exécuter une commande mongo. Ce que vous avez l'intention de faire, c'est de trouver tous les documents d'une collection, d'apporter des modifications, puis de les remplacer. Vous avez besoin de Find()
, curseur et ReplaceOne()
. Voici un extrait de code similaire.
if cur, err = collection.Find(ctx, bson.M{"hometown": bson.M{"$exists": 1}}); err != nil {
t.Fatal(err)
}
var doc bson.M
for cur.Next(ctx) {
cur.Decode(&doc)
doc["updated"] = time.Now()
if result, err = collection.ReplaceOne(ctx, bson.M{"_id": doc["_id"]}, doc); err != nil {
t.Fatal(err)
}
if result.MatchedCount != 1 || result.ModifiedCount != 1 {
t.Fatal("replace failed, expected 1 but got", result.MatchedCount)
}
}
J'ai un exemple complet TestReplaceLoop()