MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Luwak dengan ReplicaSet di Atlas

DI MONGODB 3.4.x

Saya menyelesaikan masalah ini dengan menempatkan nilai 'opsi' langsung di string 'uri', menurut dokumentasi (http://mongoosejs.com/docs/connections.html ) pada bagian 'Replica Set Connections'.

// connection string using mongoose:
var uri = 'mongodb://MY_USER:[email protected]' +
  'MY_SERVER-shard-00-00-clv3h.mongodb.net:27017,' +
  'MY_SERVER-shard-00-01-clv3h.mongodb.net:27017,' +
  'MY_SERVER-shard-00-02-clv3h.mongodb.net:27017/MY_DATABASE' +
  'ssl=true&replicaSet=MY_REPLICASET_NAME-shard-0&authSource=MY_ADMIN_DATABASE';

mongoose.connect(uri);
var db = mongoose.connection;

Sekarang, ini berfungsi dengan baik!

PERHATIKAN DENGAN MONGODB 3.6

Pada MongoDB Atlas yang menggunakan versi 3.6.x, string koneksi diubah menggunakan server DNS yang membuat tautan menjadi lebih pendek.

...jika Anda menggunakan string koneksi ini di aplikasi Anda, koneksi ini akan berhasil tetapi hanya dapat membaca dan menulis dengan pengguna atlas dengan akses hak istimewa yang lebih tinggi (atlasAdmin, readWriteAnyDatabase...).

Agar Anda bekerja dengan pengguna tertentu dengan hak istimewa hanya untuk membacaTulis basis data Anda, Anda harus menyimpan string koneksi yang sama yang digunakan di MongoDB 3.4 karena luwak tidak mengenali opsi DNS (mongodb+srv).

P.S. semua sumber daya baru dari MongoDB 3.6.x akan terus bekerja secara normal!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor/MongoDB lihat bidang yang tersedia untuk dipublikasikan?

  2. kembalikan dokumen dengan subdokumen terbaru hanya dalam agregat mongodb

  3. Bagaimana cara menulis kueri pembaruan di mongodb untuk array yang sangat bersarang?

  4. Menggabungkan nilai string dalam array dalam satu bidang di MongoDB

  5. Kueri MongoDB pada semua koleksi sharding tanpa shardkey