Подтвердить что ты не робот

Как я могу делиться коллекциями MongoDB между приложениями Meteor?

Я хотел бы иметь приложение администратора и клиентское приложение для моего проекта. В идеале я хотел бы иметь общую коллекцию MongoDB. Как я смогу это сделать?

Я попытался создать коллекции с тем же именем в двух разных приложениях, но обнаружил, что Meteor будет хранить данные отдельно. Любая идея, что я могу сделать? Спасибо.

4b9b3361

Ответ 1

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

Затем запустите приложение meteor, оно изменит использование метеоритов базы данных по умолчанию. Поэтому совместное использование баз данных или коллекций не будет проблемой! По административной причине я использовал бы индивидуальный сервер MongoDB, которым управлял сам, кроме использования встроенного в MeteorDB метеорного сервера.

Ответ 2

Разумный вопрос и, вероятно, стоит обсудить сверх этого ответа:

Соединение MongoDB обрабатывается самим процессом приложения Meteor, и это - насколько я понимаю и понимаю - часть философии Meteors, ориентированная на подход, который может быть описан следующим образом: один источник данных обслуживает одно приложение, принадлежащее ему, но многие клиенты, подписавшиеся на него.

Это означает, что предпочтительным способом является объединение клиентов "admin" и "клиент" в одном приложении (т.е. ваше приложение Meteor).

Однако из административного представления сервера соединения Meteor обрабатываются таким образом, что всегда есть локальный источник данных по умолчанию, который находится в каталоге вашего проекта (.meteor/local/db, try meteor mongo --url для получения строки соединения mongo while выполняется процесс подачи метеора). Но тем не менее можно указать дополнительную строку источника данных для целей развертывания, как описано в этих инструкциях .

Таким образом, вам нужно будет выбрать несколько жуткий способ "локального развертывания разработки" для вашей планируемой настройки, чтобы работать. Или вы идете и взламываете источники и... нет, забудьте об этом. Вероятно, вы хотите, чтобы ваше приложение и клиенты использовали, например, обновления в режиме реального времени (публиковать), поэтому приложение Meteor привязано к "источнику данных приложения" и наоборот. При подключении из другого приложения события, которые вызывают изменения в модели, не будут передаваться через эти приложения. Сам экземпляр mongoDB не знает об этом.

Я уверен, что основная команда не будет предоставлять подключение источника данных к разделу конфигурации по рассматриваемым причинам, если они не расширят свою архитектуру с помощью какой-либо концепции модуля, которая обеспечивает общий уровень обслуживания базовой абстракции модели/коллекций через Meteor экземпляры - по крайней мере, поддержку осведомленности о событиях публикации/подписки.

Ответ 3

Попробуйте этот DDP-тест, который я взломал вместе, чтобы создать мост для двух приложений (сервер A и B).

Оба сервера могут управлять данными, но данные хранятся только в одной коллекции на сервере А.

См. эту ссылку, а также