2016-07-31 30 views
1

Mit PDI Wasserkocher MongoDB Ausgabe, ich versuche, ein Mongodb-Dokument zu aktualisieren, durch Abfrage der _id (ObjectId) -Feld. Wenn ich die _id Variable als String an den MongoDB Output Schritt passieren, die letzte Abfrage, die erstellt wird, sieht aus wiePDI Wasserkocher - Wie ObjektId für Abfrage übereinstimmen in MongoDB Ausgabe

Modifier update query: 

{ 
    "_id" : "<string val>" 
} 

die wie

Modifier update query: 

{ 
    "_id" : "579c18b47f34b4330f85a981" 
} 
schließlich zu etwas verwandelt bekommen könnte

Dies verursacht werden könnte, die Abfrage nicht das Dokument zu finden und die Aktualisierung schlägt fehl mit Fehler "Keine Felder zum Aktualisieren wurden für Modifier-Update-Vorgang angegeben!"

Gibt es eine Möglichkeit, die ich angeben kann Abfrage wie unten?

{"_id" : ObjectId(579c18b47f34b4330f85a981)} 

Oder sehe ich den Fehler aus einem anderen Grund?

Hier finden Sie den Screenshot der Registerkarte "Mongo-Dokumentfelder". enter image description here

+0

Ab sofort funktioniert es durch Übergabe der Shard Keys anstelle von _id. Aber wenn ich nach _id suchen müsste, wie würde ich es in der Abfrage angeben, mit der PDI Kettle - MongoDB Output Komponente? – Mahesh

Antwort

0

Zuerst Sie „Javascript“ Schritt können Sie die „_id“ Wert im JSON-Format zu transformieren:

_id = '{ "$oid": "' + _id + '" }' 

Dann „MongoDB Ausgang“ Schritt in der letzten Reihe sollten Sie die JSON gesetzt Attribut zu Y.