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:example@sqldat.com:27017/meteor meteor
Anda juga dapat mengabaikan user:example@sqldat.com 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:example@sqldat.com: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.