2013-02-18 89 views
3

我想通過使用Mongo中的_id字段進行插入。水壺mongo _id

我已經嘗試通過使用JSON輸入步驟,沒有運氣._ $ ID或$ ._ id來恢復第一_id。$ OID

任何人都知道如何向_id UPSERT?

+1

'水壺',你指的是Pentaho壺?如果是這樣,你想達到什麼目的? Kettle中的輸入步驟通常是查詢數據,而不是更新/插入。 – Stennie 2013-02-19 03:11:38

+0

是的,Pentaho Kettle數據集成。我試圖選擇第一個文檔,通過使用Json Input(包括_id)恢復其數據,做一些更改並通過使用之前恢復的_id來插入文檔。 – user1688569 2013-02-20 08:00:05

+1

@Stennie對於輸入步驟是正確的。不幸的是,我對Mongo一無所知。如果您正在尋找通常在Kettle中使用代理鍵管理的方法,請查看插入/更新步驟以及組合查找/更新步驟。 – 2013-02-20 20:32:51

回答

2

一旦你的_id,將其轉化爲通過Stennie指示的擴展JSON符號與Modified Javascript Value腳本,如:

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

在你MongoDB Output步驟,在該_idJSON列設置爲Y。我不確定何時引入這個JSON選項,但是在今天最新的CI build of Kettle中發現了它。