Rumah >pembangunan bahagian belakang >Golang >Mengapa Pemacu MongoDB Go Saya Mengembalikan \'Tiada Mod Kebimbangan Tulis Dinamakan \'majoriti\' Ditemui\'?

Mengapa Pemacu MongoDB Go Saya Mengembalikan \'Tiada Mod Kebimbangan Tulis Dinamakan \'majoriti\' Ditemui\'?

Linda Hamilton
Linda Hamiltonasal
2024-11-26 05:05:11993semak imbas

Why Does My MongoDB Go Driver Return

"Tiada Mod Tulis Kebimbangan Bernama 'majoriti' Ditemui" Ralat dalam MongoDB

Isu:

Apabila cuba memasukkan objek ke MongoDB melalui permintaan POST menggunakan pemacu MongoDB Go, pengguna mungkin menghadapi perkara berikut ralat:

multiple write errors: [{write errors: []}, {(UnknownReplWriteConcern) No write concern mode named 'majority' found in replica set configuration}]

Punca:

Ralat ini menunjukkan bahawa mod kebimbangan tulis yang dinyatakan dalam rentetan sambungan ('majoriti' dalam kes ini) tidak dikenali oleh set replika MongoDB.

Penyelesaian:

Kepada selesaikan ralat ini, alih keluar parameter &w=majoriti daripada rentetan sambungan. Rentetan sambungan yang disemak seharusnya kelihatan seperti ini:

mongodb+srv://user:[email protected]/DBname?retryWrites=true

Penjelasan:

Kebimbangan tulis menentukan cara MongoDB harus mengendalikan operasi tulis (cth., sisipan, kemas kini). Pilihan majoriti memerlukan majoriti ahli set replika untuk mengakui operasi tulis sebelum menganggapnya berjaya. Walau bagaimanapun, jika set replika tidak dikonfigurasikan untuk menyokong kebimbangan penulisan majoriti, operasi akan gagal.

Dengan mengalih keluar parameter &w=majoriti daripada rentetan sambungan, anda membenarkan MongoDB untuk gunakan kebimbangan tulis lalai, yang tidak memerlukan pengakuan daripada majoriti ahli set replika. Ini memastikan bahawa operasi tulis akan berjaya walaupun tidak semua ahli telah mengakuinya.

Butiran Tambahan:

  • Mod kebimbangan tulis boleh ditentukan sebagai parameter dalam rentetan sambungan (seperti dalam contoh awal) atau melalui SetWriteConcern pada objek mongo.Client.
  • Untuk set replika, mod kebimbangan tulis mesti disokong oleh konfigurasi set replika. Rujuk dokumentasi MongoDB untuk mendapatkan maklumat lanjut tentang mengkonfigurasi kebimbangan tulis untuk set replika.
  • Kebimbangan tulis lalai untuk pelanggan yang tidak disahkan adalah majoriti. Pelanggan yang disahkan mempunyai kebimbangan penulisan lalai yang diakui, iaitu tetapan kebimbangan penulisan yang kurang ketat berbanding majoriti.

Atas ialah kandungan terperinci Mengapa Pemacu MongoDB Go Saya Mengembalikan \'Tiada Mod Kebimbangan Tulis Dinamakan \'majoriti\' Ditemui\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn