sql >> Base de Datos >  >> NoSQL >> MongoDB

Conexión a la base de datos de meteoritos

¿Cómo puedes conectarte a un MongoDB con Meteor?

Escenario A:usar la base de datos integrada como predeterminada

Esto es mucho más simple que lo que hiciste. Cuando ejecutas meteor en realidad inicia una base de datos con el servidor Meteor, donde Meteor escucha en el puerto 3000 y la base de datos en el puerto 3001. La aplicación Meteor ya está conectada a esta base de datos en el puerto 3001 y usa una base de datos llamada meteor . No hay necesidad alguna de recurrir a MongoInternals.RemoteCollectionDriver . Simplemente elimine ese código y cambie las cosas a:

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

Escenario B:usar una base de datos diferente como predeterminada

Usando el MONGO_URL variable de entorno, puede establecer la cadena de conexión en un MongoDB al iniciar el servidor Meteor. En lugar de la base de datos del puerto local 3001 o una conexión no autenticada, puede especificar exactamente dónde y cómo conectarse. Inicie su servidor Meteor así:

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

También puede omitir el user:[email protected] parte del comando si no se necesita autenticación.

Escenario C:Conéctese a una segunda base de datos (tercera, etc.) desde la misma aplicación Meteor

Ahora necesitamos usar MongoInternals.RemoteCollectionDriver . Si desea usar otra base de datos que no sea la base de datos predeterminada definida al iniciar el servidor Meteor, debe usar su enfoque.

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

Bonificación:¿Por qué no debería usar MongoInternals? con Mongo.Collection ?

Como los documentos indican no debe pasar ninguna conexión de Mongo a la new Mongo.Collection() comando, pero solo una conexión a otra instancia de Meteor. Eso significa que, si usa DDP.connect para conectarse a un servidor diferente, puede usar su código, pero no debe mezclar MongoInternals con Mongo.Collection - no funcionan bien juntos.