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!