MongoPostexecutor

Gruppe

Postexecution

Funktion

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

Konfigurationsdatei

sample_mongo_postexecuter.properties

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/attachments/55939025/139-version-1-modificationdate-1646025495488-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.


now()
 
create W3CDTF from date (a) for Target Timezone (b)
a Ergebnis: 1
b Wert: UTC
 
concat(a,b,c,d,e,f,g,h, [CR-support i])
a Wert: ISODate(
b Ergebnis: 2
c Wert: )
d Wert:
e Wert:
f Wert:
g Wert:
h Wert:
i Wert:


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.


sample_mongo_postexecuter.properties
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.

Siehe auch