Jak se můžete připojit k MongoDB pomocí Meteor?
Scénář A:Použijte vestavěnou databázi jako výchozí
Je to mnohem jednodušší než to, co jste udělali vy. Když spustíte meteor
ve skutečnosti spustíte DB se serverem Meteor, kde Meteor naslouchá na portu 3000 a databáze na portu 3001. Aplikace Meteor je již připojena k této databázi na portu 3001 a používá databázi s názvem meteor
. Není třeba se vůbec vracet k MongoInternals.RemoteCollectionDriver
. Stačí odstranit tento kód a změnit věci na:
Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection
Scénář B:Jako výchozí použít jinou databázi
Pomocí MONGO_URL
Proměnnou prostředí můžete při spouštění serveru Meteor nastavit připojovací řetězec na MongoDB. Místo lokální databáze portu 3001 nebo neověřeného připojení můžete přesně určit, kde a jak se připojit. Spusťte svůj server Meteor takto:
$ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor
Můžete také vynechat user:[email protected]
část příkazu, pokud není potřeba žádné ověření.
Scénář C:Připojení k druhé (třetí atd.) DB ze stejné aplikace Meteor
Nyní musíme použít MongoInternals.RemoteCollectionDriver
. Pokud chcete použít jinou databázi, která není výchozí DB definovanou při spuštění serveru Meteor, měli byste použít svůj přístup.
var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
var numberOfDocs = database.open('boxes').find().count();
Bonus:Proč byste neměli používat MongoInternals
s Mongo.Collection
?
Jak uvádějí dokumenty
neměli byste předávat žádné spojení Mongo do new Mongo.Collection()
příkaz, ale pouze připojení k jiné instanci Meteoru. To znamená, pokud používáte DDP.connect
pro připojení k jinému serveru můžete použít svůj kód – neměli byste však kombinovat MongoInternals
s Mongo.Collection
- spolu nefungují dobře.