Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyelesaikan \'Tiada mod kebimbangan tulis bernama \'majoriti\' dijumpai\' Ralat dalam MongoDB?
Ralat Kebimbangan Tulis dalam MongoDB
Apabila memasukkan data ke dalam MongoDB menggunakan kebimbangan penulisan majoriti, ralat mungkin akan berlaku:
No write concern mode named 'majority`' found in replica set configuration
Ralat ini berlaku kerana konfigurasi set replika tidak termasuk mod kebimbangan tulis bernama majoriti.
Menyelesaikan Ralat
Untuk menyelesaikan ralat ini, tambahkan mod kebimbangan tulis majoriti pada konfigurasi set replika. Kebimbangan penulisan majoriti memastikan bahawa data ditulis kepada majoriti ahli set replika sebelum mengakui penulisan.
Contoh Rentetan Sambungan
Rentetan sambungan berikut termasuk majoriti tulis kebimbangan:
mongodb+srv://user:[email protected]/DBname?retryWrites=true&w=majority
Ubah suai Pangkalan Data Sambungan
Kemas kini fungsi persediaan sambungan pangkalan data untuk menambah kebimbangan penulisan majoriti:
import ( "context" "time" "go.mongodb.org/mongo-driver/mongo" ) var DbConn *mongo.Client func SetupDB(conn_str string) { var err error opts := options.Client().ApplyURI(conn_str).SetWriteConcern(options.Majority()) DbConn, err = mongo.NewClient(opts) if err != nil { log.Fatal(err) } ctx, _ := context.WithTimeout(context.Background(), 10*time.Second) err = DbConn.Connect(ctx) if err != nil { log.Fatal(err) } }
Permintaan Kemas Kini
Pastikan InsertOne permintaan menggunakan sambungan pangkalan data yang dikemas kini:
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second) defer cancel() result, err := DbConn.Database(dbName).Collection(collectionName).InsertOne(ctx, b)
Selepas membuat perubahan ini, jalankan semula aplikasi dan ralat harus diselesaikan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Tiada mod kebimbangan tulis bernama \'majoriti\' dijumpai\' Ralat dalam MongoDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!