MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Conexão de banco de dados Meteor


Como você pode se conectar a um MongoDB com Meteor?

Cenário A:use o banco de dados integrado como padrão

Isso é muito mais simples do que o que você fez. Quando você executa meteor você realmente inicia um banco de dados com o servidor Meteor, onde o Meteor escuta na porta 3000 e o banco de dados na porta 3001. O aplicativo Meteor já está conectado a este banco de dados na porta 3001 e usa um banco de dados chamado meteor . Não há necessidade de retornar ao MongoInternals.RemoteCollectionDriver . Basta remover esse código e alterar as coisas para:
 Boxes = new Mongo.Collection("boxes"); // use default MongoDB connection

Cenário B:use um banco de dados diferente como padrão

Usando o MONGO_URL variável de ambiente, você pode definir a string de conexão para um MongoDB ao iniciar o servidor Meteor. Em vez do banco de dados da porta 3001 local ou de uma conexão não autenticada, você pode especificar exatamente onde e como se conectar. Inicie seu servidor Meteor assim:
$ MONGO_URL=mongodb://user:[email protected]:27017/meteor meteor

Você também pode deixar de fora o user:[email protected] parte do comando se nenhuma autenticação for necessária.

Cenário C:Conecte-se a um segundo banco de dados (3º, etc.) do mesmo aplicativo Meteor

Agora precisamos usar MongoInternals.RemoteCollectionDriver . Se você deseja usar outro banco de dados que não seja o banco de dados padrão definido ao iniciar o servidor Meteor, você deve usar sua abordagem.
var database = new MongoInternals.RemoteCollectionDriver('mongodb://user:[email protected]:27017/meteor');
var numberOfDocs = database.open('boxes').find().count();

Bônus:por que você não deve usar o MongoInternals com Mongo.Collection ?

Como os documentos indicam você não deve passar nenhuma conexão do Mongo para o new Mongo.Collection() comando, mas apenas uma conexão com outra instância do Meteor. Isso significa que, se você usar DDP.connect para se conectar a um servidor diferente, você pode usar seu código - mas não deve misturar o MongoInternals com Mongo.Collection - eles não funcionam bem juntos.