MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

Bessere Validierung in MongoDB Compass 1.18

Marc-David Militz
Expert
  • Artikel von Dj Walker-Morgan

    • englischer Originalartikel
      https://www.mongodb.com/blog/post/better-validation-with-mongodb-compass-118
      Übersetzung mit freundlicher Genehmigung von MongoDB


      Im aktuellsten Update für MongoDB Compass wurde einiges an Verbesserungen in der Benutzbarkeit und Usability - oder wie man heute sagt der Nutzererfahrung - eingebaut. Teil dieser verbesserten Erfahrung ist die Unterstützung für eine JSON Schema Validierung.

      MongoDB Compass ist das offizielle grafische Client, der für MongoDB angeboten wird. Die Software ermöglicht es tief in die MongoDB Datenbank sowie deren Collections einzutauchen. Es ist möglich darüber Daten zu erstellen (create), bearbeiten (update), zu aggregieren (aggregate) und zu löschen (delete). Außerdem können darüber Indexe verwaltet, Ausführungspläne angezeigt und Abfragen in Quellcode für Anwendungen umgewandelt werden.

      Compass wird in einer Reihe von Ausführungen angeboten. Es beginnt mit einer frei verfügbaren Community Edition, einer Re4ad-Only Edition und einer Vollversion, die Bestandteil einer MongoDB Enterprise Advanced Subscription ist. Validierung ist dabei ein Feature, das nur im Rahmen einer Subscription verfügbar ist. In der aktuellen Version wurde die Validierung um eine Unterstützung für JSON Schemata erweitert.

      • Validierung mit Compass

        • IN früheren Versionen von Compass gab es einen "Regel-Builder", der es möglich machte die MongoDB eigenen Validierungsregeln kontrolliert zusammenzusetzen. Dazu gab einen "JSON Editor", mit dem die erstellen Regeln bearbeitet werden konnten.

          Für Compass 1.18 wurde nun ein Context-sensitiver, field-aware Editor eingeführt, der es erlaubte, den alten Regel-Builder durch interaktive und responsive Lösung zu ersetzen. Zum Ausprobieren eignen die Beispiel Datensätze, die MongoDB zu Verfügung stellt, ganz hervorragend.
          https://www.mongodb.com/blog/post/atlas-plus-load-sample-data-for-easier-learning



          Im Zentrum der Ansicht befindet sich der JSON Editor, darüber finden sich die Kontrollen, mit denen sich die Validierung steuern lässt. Unter dem Editor befindet sich ein neues Element, zwei Fenster für Beispiel-Dokumente. In einem wird eine Dokument der gewählten Collection angezeigt, das erfolgreich validiert werden konnte, in dem anderen eines bei dem die Validierung nicht funktioniert hat. Bei jeder Änderung der Regeln im Editor werden die beiden Ansichten ebenso geupdated. Auf diese Weise bekommt man ein sofortiges Feedback, inwiefern sich die Änderungen auswirken würden.



          Sobald man anfängt im Editor zu tippen zeigen sich auch schon weitere neue Features. Auf der einen Seite erscheint eine Anzeige, die uns über Fehler in den Regeln informiert, auf der anderen Seite poppt eine Autovervollständigung auf. Solange die Regeln selbst nicht valide sind, wird in den Vorschau Fenstern auch noch nichts angezeigt.

          Der Editor selbst ist clever genug festzustellen, in welcher Ebene des JSON Dokumentes wir uns befinden und passt die Vorschläge der Autovervollständigung daraufhin an. So ist z.B. in der ersten Ebene $jsonSchema ein relativ wahrscheinlicher Kandidat, den wir brauchen könnten. Um den Vorschlag auszuwählen müssen wir diesen einfach bestätigen und die Autovervollständigung ihren Job machen lassen.

          Nun können wir ein JSON Schema Validierungs-Dokument einfügen. Wenn wir die AirBnB Beispieldaten verwenden, so können wir ein Feld mit dem Namen "cleaning_fee" als Pflichtfeld in unser Schema einfügen.
          Die Regel dafür sieht so aus:
          {
          $jsonSchema: {
          required: [ "cleaning_fee" ]
          }
          }

          Wenn wir diese Regel fehlerfrei eingeben haben werden nun auch die Beispieldokumente wieder angezeigt. Die Regel ist aber noch nicht aktiv und die angezeigten Dokumente sind lediglich eine Vorschau. Sobald wir anfangen die Regel zu bearbeiten werden auch die Abbrechen (Cancel) und Update Buttons aktiviert. Mit dem Update Butten wenden wir die Validierungsregel auf die Datenbank an, mit dem Abbrechen Butten setzen wir den Editor auf die letzte gespeicherte Version zurück.

          • Autovervollständigung im Detail

            • Die Autovervollständigung kann mehr als nur $ Operatoren vervollständigen. Erstellen wir ein Beispiel, in dem ein Summenfeld mehr als zehn Zeichen enthalten muss, um valide zu sein. Wir beginnen mit der Definition unserer Eigenschaften in einem Schema:



              Wie man im Screenshot sehen kann, wird ein Feld mit dem Namen "proprty_type" vorgeschlagen. Dieses Feld stammt aus den Dokumenten in dem AirBnB Beispieldatensatz. Außerdem bietet er die JSON Schema Anweisung "property" an. Beim dritten Vorschlag "patternProperties" sieht man das die Autovervollständigung auch versucht nach Strohhalmen zu greifen und weniger wahrscheinliche Vorschläge macht.



              Nachdem wir uns für "properties" entschieden haben und beginnen die Buchstaben "su" einzugeben, bekommen wir nun nur noch die Felder "summary" und den Strohhalmen "security_deposit" angezeigt. Diese Felder wurden in den Daten gefunden und die Autovervollständigung weiß, dass innerhalb eines "properties" nur Feldnamen verwendet werden können.



              Dies setzt sich Ebene für Ebene fort, wenn wir uns weiter durch unser Validierungsdokument arbeiten. Als ersten Punkt der Auswahlliste wird immer das wahrscheinlichste Ergebnis angezeigt. Dazu gehören auch Datentypen.

              • Zusammenfassung

                • Der neue Editor in MongoDB Compass 1.18 tauscht einen starren Regelersteller gegen einen intelligenten, hilfreichen Editor mit schnellem Feedback aus und unterstützt dabei die JSON-Schema-Validierung.

                  Wenn sie sich zu den Qualiero Angeboten zum Thema MongoDB informieren wollen, so haben sie hier dazu die Möglichkeit
                  https://www.qualiero.com/glossar/mongodb.html

                  Alle verwendenten Grafiken sind Eigentum vom mongodb.com

Latest member activities

Tags

Recommend this community post