MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Połączenie z bazą danych Meteor

Jak możesz połączyć się z MongoDB za pomocą Meteora?

Scenariusz A:Użyj wbudowanej bazy danych jako domyślnej

To znacznie prostsze niż to, co zrobiłeś. Po uruchomieniu meteor faktycznie uruchamiasz bazę danych z serwerem Meteor, gdzie Meteor nasłuchuje na porcie 3000, a baza danych na porcie 3001. Aplikacja Meteor jest już połączona z tą bazą danych na porcie 3001 i używa bazy danych o nazwie meteor . Nie ma potrzeby wracać do MongoInternals.RemoteCollectionDriver . Po prostu usuń ten kod i zmień rzeczy na:

 Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection

Scenariusz B:użyj innej bazy danych jako domyślnej

Korzystanie z MONGO_URL zmienna środowiskowa możesz ustawić ciąg połączenia na MongoDB podczas uruchamiania serwera Meteor. Zamiast lokalnej bazy danych portu 3001 lub nieuwierzytelnionego połączenia możesz dokładnie określić, gdzie i jak się połączyć. Uruchom swój serwer Meteor w ten sposób:

$ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor

Możesz też pominąć user:[email protected] część polecenia, jeśli uwierzytelnianie nie jest potrzebne.

Scenariusz C:Połącz się z drugą (3. itd.) bazą danych z tej samej aplikacji Meteor

Teraz musimy użyć MongoInternals.RemoteCollectionDriver . Jeśli chcesz użyć innej bazy danych, która nie jest domyślną bazą danych zdefiniowaną podczas uruchamiania serwera Meteor, powinieneś zastosować swoje podejście.

var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
var numberOfDocs = database.open('boxes').find().count();

Bonus:dlaczego nie powinieneś używać MongoInternals z Mongo.Collection ?

Jak wskazuje dokumentacja nie powinieneś przekazywać żadnego połączenia Mongo do new Mongo.Collection() polecenie, ale tylko połączenie z inną instancją Meteor. Oznacza to, że jeśli używasz DDP.connect aby połączyć się z innym serwerem, możesz użyć swojego kodu - ale nie powinieneś mieszać MongoInternals z Mongo.Collection - nie współpracują dobrze ze sobą.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $setEquals

  2. Czy muszę wyraźnie zamknąć połączenie?

  3. Relacje wiele-do-wielu w CouchDB lub MongoDB

  4. Jak skonfigurować wielkość próbkowania sesji iskrowej w Java Spark

  5. jak poprawnie rzucić ObjectId w manguście