2016-07-01 12 views
0

In Heroku habe ich 2 Apps. Eine Client-App (verwendet coffeescript und mongoose) und eine Admin-App (verwendet javascript und mongoskin).Arbeiten in Heroku, kann ich eine Sammlung in Mongodb/Mongolab (mlab) teilen?

Ich möchte eine Sammlung innerhalb dieser beiden Apps teilen, kann aber nicht herausfinden, wie. Ich weiß nicht, ob "sharding collections" der Weg ist, den ich erforschen sollte, um eine Sammlung zu teilen? ... Ich hätte gerne Hilfe bei der Suche nach einer Möglichkeit, eine Sammlung zwischen 2 Datenbanken und 2 verschiedenen Heroku-Apps zu teilen ist möglich.

Ich habe einige Links zum Freigeben von Datenbanken gefunden, aber ich möchte nur Sammlungen innerhalb der Datenbanken freigeben. Hier sind einige der Links fand ich, aber noch nicht richtig getestet, da es mit Meteor-Anwendungen beschäftigt, nicht Heroku: How can I share MongoDB collections between Meteor apps?, DDP between two servers doesn't reconnect, Connect two Meteor applications using DDP

Antwort

0

Von dem 2 Heroku Apps, einer von ihnen ist der „Besitzer“ der Datenbank für die Sammlung, die Sie freigeben möchten, und ist bereits mit der Verbindungszeichenfolge MONGODB_URI für das Datenbank-Add-On vorkonfiguriert. Sie müssten manuell für die Datenbank die 2. Heroku App mit der Verbindungszeichenfolge konfigurieren, dass die Sammlung enthält, die Sie teilen möchten:

https://devcenter.heroku.com/articles/mongolab#connecting-to-existing-mlab-deployments-from-heroku

Beachten Sie, dass diese Einstellung die gesamte Datenbank zwischen den 2 Add-ons teilen. Wenn Sie es nur auf eine Sammlung beschränken möchten, müssen Sie einen Datenbankbenutzer für die 2. Heroku-App erstellen, die nur Zugriff auf die betreffende Sammlung hat.

http://docs.mlab.com/connecting/#users

https://docs.mongodb.com/v3.0/core/security-user-defined-roles/

Benutzer definierte Rolle Administrator muss über einen Client wie der Mongo Mantel getan werden - mLab UI nicht unterstützt sie.