sql >> Databasteknik >  >> NoSQL >> MongoDB

Meteordatabasanslutning

Hur kan du ansluta till en MongoDB med Meteor?

Scenario A:Använd den inbyggda databasen som standard

Det här är mycket enklare än vad du gjorde. När du kör meteor du startar faktiskt en DB med Meteor-servern, där Meteor lyssnar på port 3000 och databasen på port 3001. Meteor-appen är redan ansluten till denna databas vid port 3001 och använder en db som heter meteor . Det finns inget som helst behov av att falla tillbaka till MongoInternals.RemoteCollectionDriver . Ta bara bort den koden och ändra saker till:

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

Scenario B:Använd en annan DB som standard

Använder MONGO_URL miljövariabel du kan ställa in anslutningssträngen till en MongoDB när du startar Meteor-servern. Istället för den lokala port 3001-databasen eller en oautentiserad anslutning kan du ange exakt var och hur du ska ansluta. Starta din Meteor-server så här:

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

Du kan också utelämna user:[email protected] del av kommandot om ingen autentisering behövs.

Scenario C:Anslut till en andra (tredje, etc) DB från samma Meteor-app

Nu måste vi använda MongoInternals.RemoteCollectionDriver . Om du vill använda en annan databas som inte är standard-DB som definieras när Meteor-servern startas, bör du använda ditt tillvägagångssätt.

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

Bonus:Varför ska du inte använda MongoInternals med Mongo.Collection ?

Som dokumenten anger du ska inte skicka någon Mongo-anslutning till new Mongo.Collection() kommando, men bara en anslutning till en annan Meteor-instans. Det betyder att om du använder DDP.connect för att ansluta till en annan server kan du använda din kod - men du bör inte blanda MongoInternals med Mongo.Collection - de fungerar inte bra tillsammans.



  1. Letar efter en lösning mellan att ställa in många timers eller att använda en schemalagd uppgiftskö

  2. Mongodb x.509 "Inget verifierat ämnesnamn tillgängligt från klienten"

  3. MongooseJS - Hur man sparar dokument och refererade dokument

  4. Hur uppdaterar man ett stort antal dokument i MongoDB mest effektivt?