Bagaimana Anda bisa terhubung ke MongoDB dengan Meteor?
Skenario A:Gunakan DB bawaan sebagai default
Ini jauh lebih sederhana daripada yang Anda lakukan. Saat Anda menjalankan meteor
Anda sebenarnya memulai DB dengan server Meteor, di mana Meteor mendengarkan pada port 3000 dan database pada port 3001. Aplikasi Meteor sudah terhubung ke database ini pada port 3001 dan menggunakan db bernama meteor
. Tidak perlu kembali ke MongoInternals.RemoteCollectionDriver
. Hapus saja kode itu dan ubah menjadi:
Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection
Skenario B:Gunakan DB yang berbeda sebagai default
Menggunakan MONGO_URL
variabel lingkungan Anda dapat mengatur string koneksi ke MongoDB saat memulai server Meteor. Alih-alih database port 3001 lokal atau koneksi yang tidak diautentikasi, Anda dapat menentukan dengan tepat di mana dan bagaimana menghubungkan. Mulai server Meteor Anda seperti ini:
$ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor
Anda juga dapat mengabaikan user:[email protected]
bagian dari perintah jika tidak diperlukan otentikasi.
Skenario C:Hubungkan ke DB detik (3, dll) dari aplikasi Meteor yang sama
Sekarang kita perlu menggunakan MongoInternals.RemoteCollectionDriver
. Jika Anda ingin menggunakan database lain yang bukan DB default yang ditentukan saat memulai server Meteor, Anda harus menggunakan pendekatan Anda.
var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
var numberOfDocs = database.open('boxes').find().count();
Bonus:Mengapa Anda tidak menggunakan MongoInternals
dengan Mongo.Collection
?
Seperti dokumen menunjukkan
Anda tidak boleh meneruskan koneksi Mongo apa pun ke new Mongo.Collection()
baru perintah, tetapi hanya koneksi ke instance Meteor lain. Artinya, jika Anda menggunakan DDP.connect
untuk terhubung ke server lain, Anda dapat menggunakan kode Anda - tetapi Anda tidak boleh mencampur MongoInternals
dengan Mongo.Collection
- mereka tidak bekerja sama dengan baik.