RunCommand
là thực hiện một lệnh mongo. Những gì bạn định làm là tìm tất cả các tài liệu của một bộ sưu tập, thực hiện các thay đổi và sau đó thay thế chúng. Bạn cần Find()
, con trỏ và ReplaceOne()
. Đây là một đoạn mã tương tự.
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)
}
}
Tôi có một ví dụ đầy đủ TestReplaceLoop ()