MongoPostexecutor

Gruppe

Postexecution

Klassenname

com.ebd.hub.datawizard.postexec.MongoPostexecutor

Funktion

Dieser Postexecuter führt einen Upsert oder Delete auf einem MongoDB-Dokument aus.

Beschreibung

Dieser Postexecuter kann ein Dokument in eine MongoDB einfügen (Upsert-Operation) oder eines aus dieser löschen.

Dazu legen Sie in der Zielstruktur des Profils die grundlegenden Daten an und führen danach in Phase 5 die JsonCreationUnit aus, um ein JSON-Dokument zu erzeugen.

Anschließend muss der MongoPostexecutor ausgeführt werden. Dieser übernimmt die Kommunikation mit der MongoDB und erzeugt davor aus dem JSON-Dokument ein BSON-Dokument. Eine MongoDB speichert Datensätze als BSON-Dokumente. BSON ist eine binäre Darstellung von JSON-Dokumenten, enthält jedoch mehr Datentypen als JSON. Um diese Datentypen zu erzeugen bietet MongoDB bestimmte Methoden an, die Sie anstelle konkreter Werte in einem einzufügenden Dokument angeben können. Siehe dazu den Parameter Cast und das Beispiel unten.

Parameterbeschreibung

Parameter

Beschreibung

MongoDB-Alias

Der Alias der angebundenen MongoDB-Datenbank.

Operation

Die Operation, die ausgeführt werden soll. Erlaubte Werte: Upsert, Delete.

Collection

Die Collection, in die das Dokument eingefügt werden soll. Hinweis: Eine Collection ist eine Gruppierung von MongoDB-Dokumenten und entspricht in etwa einer Tabelle in einer SQL-Datenbank.

Cast

Da die JsonCreationUnit nur "normales" JSON erzeugen kann, ist es nicht direkt möglich die in der MongoDB verwendbaren Methodenaufrufe syntaktisch korrekt darzustellen. Um dies möglich zu machen, kann man hier die Namen der Methoden angeben, die der Postexecuter im von der JsonCreationUnit erzeugten JSON-Dokument erkennt und daraus einen syntaktisch korrekten MongoDB-Aufruf erzeugt. Siehe Beispiel unten.

Beispiel

Gehen wir von folgender Zielstruktur aus.

images/download/thumbnails/27696099/MongoPostex_dest_struct-version-1-modificationdate-1548981893000-api-v2.png

Im Feld _id tragen wir den Fixwert ObjectId() ein, im Feld Name den Fixwert Peter Hall und im Feld DateOfBirth verwenden wir folgende Funktionskette.

images/download/thumbnails/27696099/MongoPostex_dest_struct_2-version-1-modificationdate-1548982236000-api-v2.png


In Phase 5 verwenden wir die JsonCreationUnit mit Wert MyData für Parameter Start at node, um das vorübergehende JSON-Dokument zu erzeugen.

Danach führen wir ebenfalls in Phase 5 in der Nachbehandlung den MongoPostexecutor mit folgender Properties-Konfigurationsdatei aus.


MongoDB-Alias=_data
Operation=Upsert
Collection=demo
Cast=ISODate,ObjectId

Hier das ursprünglich von der JsonCreationUnit erzeugte Dokument.

{"_id":"ObjectId()","Name","Peter Hall", "DateOfBirth":"ISODate(2019-01-30T07:59:05Z)"}

Folgend das vom Postexecuter tatsächlich eingefügte Dokument.

{"_id":ObjectId("5c52a06c0bafb86b5e46ffec"),"Name","Peter Hall", "DateOfBirth":ISODate("2019-01-30T07:59:05Z")}

Sie erzeugen also in einem Feld der Zielstruktur einen Methoden-Aufruf als normalen String. Die JsonCreationUnit setzt darum dann die doppelten Anführungszeichen und der Postexecuter entfernt diese wieder und setzt sie stattdessen um den Argumentswert der Methode.