Ich versuche, meine Mongo-Datenbank in ein JSON-Objekt zu entleeren, aber weil meine Abfragen an die Datenbank asynchron sind, habe ich Probleme.ReactiveMongo Datenbank-Dump mit Play Framework 2.5
Jede Sammlung in meiner Datenbank enthält Benutzerdaten und jeder Sammlungsname ist ein Benutzername.
Also, wenn ich alle meine Benutzerdaten erhalten möchte, ich alle Sammlungsnamen wiederherstellen und dann über sie hinweg, um jede Sammlung einzeln wiederherzustellen.
Diese Art funktioniert, aber manchmal wird das Versprechen erfolgreich ausgelöst, obwohl alle Daten noch nicht wiederhergestellt wurden. Dies liegt daran, dass meine Zählervariable keine zuverlässige Lösung ist.
Gibt es eine Möglichkeit, alle Benutzer zu durchlaufen, die Datenbank abzufragen und zu warten, bis alle Daten wiederhergestellt sind, bevor das Versprechen erfolgreich ausgelöst wurde? Ich habe versucht, es zu verstehen, aber ich habe keinen Weg gefunden, es zu tun. Gibt es eine Möglichkeit, eine ganze Mongo-DB in einen JSON zu schreiben: { username : data, username : data ..}
?
Für solche DB-Admin-Aufgabe, ich glaube nicht, Codierung etwas neues mit einem Treiber ist der richtige Weg. Das Dienstprogramm 'mongodump' kann die Daten direkt als JSON erhalten. Abgesehen davon würde ich vorschlagen, dass Sie sich die Dokumentation ansehen, um zu verstehen, wie [Dokument mit ReactiveMongo zu finden] (und was?) ist die [JSON-Serialisierung] (http://reactivemongo.org/releases/0.11/documentation/json/overview.html) für. – cchantep
Ich muss dies in Scala tun, weil ich eine API schreibe. Die Daten, die ich wiederherstelle, werden also an andere zu behandelnde Funktionen gesendet. Ich benutze JSON Serialisierung, aber ich sehe nicht, wie man es verwendet, um die gesamte Datenbank auf einmal und nicht Sammlung durch Sammlung zu erhalten. –
"Dumping" ist "nur" ein spezieller Fall, um (alle) das Dokument einiger Dokumente zu finden (ein Anwendungsfall wird wiederum üblicherweise von dedizierten db-Admin-Tools gehandhabt). – cchantep