¿Cómo puedo compartir las colecciones de MongoDB entre las aplicaciones Meteor?

Me gustaría poder tener una aplicación de administrador y una aplicación de cliente para mi proyecto. Idealmente, me gustaría poder compartir una colección de MongoDB. ¿Cómo podría lograr esto?

Intenté crear colecciones con el mismo nombre en dos aplicaciones diferentes, pero descubrí que Meteor mantendrá los datos separados. ¿Alguna idea de lo que puedo hacer? Gracias.

export MONGO_URL=mongodb://localhost:3002/meteor 

Luego ejecuta la aplicación Meteor, cambiará los usos predeterminados de meteoros de la base de datos. ¡Así que compartir bases de datos o colecciones no será un problema! Por razones administrativas, usaría un servidor MongoDB individual administrado por mí mismo que no sea el MongoDB interno de meteor.

Una pregunta razonable y que probablemente valga la pena discutir en exceso de esta respuesta:

La conexión MongoDB es manejada por el proceso de la aplicación Meteor y esto es, por lo que yo leo y entiendo, parte de la filosofía de Meteors que apunta a un enfoque que podría describirse así: una fuente de datos sirve una aplicación que le pertenece pero muchos clientes se suscriben a eso

Esto en mente, combinando clientes “admin” y “clientes” en una aplicación (es decir, su aplicación Meteor) es probablemente la forma preferida.

Desde una vista administrativa del servidor, sin embargo, Meteor maneja las conexiones de esa manera que siempre existe la fuente de datos local predeterminada que reside en el directorio de su proyecto ( .meteor/local/db , pruebe meteor mongo --url para obtener la conexión mongo cadena mientras se está ejecutando el proceso de aplicación de meteors). Sin embargo, uno puede especificar una cadena fuente de datos opcional para fines de implementación , como se describe en estas instrucciones de implementación .

Por lo tanto, tendría que elegir una forma algo espeluznante de “implementación de desarrollo local” para que su configuración prevista funcione. O vas y piratear las fonts y … no, olvídalo. Probablemente desee que su aplicación y sus clientes aprovechen, por ejemplo, las actualizaciones de IU en tiempo real (publicación) y es por eso que la aplicación Meteor está ligada a una “fuente de datos de aplicación” y viceversa. Al conectarse desde otra aplicación, los eventos que desencadenan cambios en el modelo no se transportarían a través de esas aplicaciones. La instancia de mongoDB, por supuesto, no es consciente de eso.

Estoy seguro de que el equipo central no expondrá la conexión de fuente de datos a una sección de configuración por razones consideradas a menos que extiendan su architecture con algún tipo de concepto de módulo que proporcione una capa de servicio común de abstracción de Modelo / Colecciones principal en todas las instancias de Meteor – en menos apoyo al conocimiento de eventos de publicación / suscripción.

Prueba esta prueba DDP que hice para crear una forma de conectar dos aplicaciones (servidor A y B).

Ambos servidores pueden manipular datos, pero los datos solo se almacenan en una colección en el servidor A.

Ver este enlace también