Ich habe nur Mongodb verwendet. Meiner persönlichen Meinung nach würde ich empfehlen, mit etwas Niedrigem zu beginnen und dann nach oben zu gehen. Andernfalls können Sie die zusätzlichen erweiterten Funktionen von Treibern höherer Stufe wie Mungo ohne wirklichen Nutzen nutzen.
Das Problem, das ich mit mongodb hatte, das in node.js endemisch ist, ist die schlechte Dokumentation. Es gibt Dokumentation und vieles davon, aber es ist nicht immer die hilfreichste. Dass ich bisher gesehen habe, gibt es keine guten und gründlichen Beispiele für die Produktionsnutzung des Treibers. Die Dokumentation enthält dasselbe Beispiel für das Öffnen einer Verbindung, das Ausgeben eines Befehls und das Schließen der Verbindung. Sie können erkennen, dass es kopiert und aus einer Vorlage eingefügt wurde, da jedes Beispiel alles enthält, was möglicherweise benötigt wird, und nicht nur das, was für jedes Beispiel benötigt wird.
Um ein völlig zufälliges Beispiel zu geben:
- raw {Boolean, Standard: false}, führen Sie Operationen mit rohen Bson-Puffern aus.
Was genau macht "Operationen mit rohen Bson-Puffern ausführen"? Ich kann es nirgendwo erklären und eine Google-Suche nach diesem Satz hilft nicht. Vielleicht könnte ich weiter googeln, aber ich sollte nicht müssen. Die Informationen sollten da sein. Gibt es Leistungs-, Stabilitäts-, Integritäts-, Kompatibilitäts-, Portabilitäts- oder Funktionsvorteile für das Aktivieren / Deaktivieren dieser Option? Ich habe wirklich keine Ahnung, ohne tief in den Code einzutauchen, und wenn Sie in meinem Boot sind, ist das ein ernstes Problem. Ich habe einen Daemon, bei dem keine perfekte Persistenz erforderlich ist, das Programm jedoch zur Laufzeit sehr stabil sein muss. Ich könnte annehmen, dass dies bedeutet, dass erwartet wird, dass ich JSON deserialisiere und serialisiere, oder dass es sich um etwas Niedriges handelt, das für den Benutzer intern und transparent ist, aber ich könnte mich irren. Obwohl ich dazu neige, gute Annahmen zu treffen, kann ich mich bei der Erstellung wichtiger Systeme nicht auf Annahmen und Vermutungen verlassen. Hier kann ich also entweder meine Behauptung mit Code testen oder viel tiefer in Google oder deren Code eintauchen. Als Einzelfall ist das nicht so schlimm, aber ich finde mich oft in dieser Situation wieder, wenn ich ihre Dokumentation lese. Der Unterschied kann bedeuten, dass Tage für eine Aufgabe im Vergleich zu Stunden aufgewendet wurden. Ich brauche eine Bestätigung und die Dokumentation gibt mir kaum eine Erklärung, geschweige denn eine Bestätigung.
Die Dokumentation ist überstürzt. Es erklärt keine Ereignisse, gibt vage Details darüber, wann Fehler ausgelöst werden, oder die Art dieser Fehler, und es gibt oft mehrere Möglichkeiten, um eine Verbindung herzustellen, die unklar sein kann. Sie können durchkommen und es ist nicht völlig nutzlos, aber es ist sehr rau an den Rändern. Sie werden feststellen, dass einige Dinge dem Rätselraten und Experimentieren überlassen bleiben.