2014-03-25 66 views
0

我試圖將我的mongodb數據轉換爲更簡單的格式,但我不知道如何檢查某些字段是否爲數組並僅更新這些數據。使用現有對象更新MongoDB對象

我有這樣的對象在我的數據庫目前

{ "_id" : ObjectId("xyz"), "name" : "Yeti ", "channel" : "ABC", "showed" : { "_isAMomentObject" : true, "_i" : "25.3.2014 23:40", ... }} 

我也有一些行這是在新的格式已經:

{ "_id" : ObjectId("xyz"), "name" : "Yeti ", "channel" : "ABC", "showed" : "25.3.2014 23:40" } 

我想更新我的所有對象將具有「顯示」屬性的數組類型轉換爲show._i中顯示屬性的對象。

shows._i =>顯示,對於具有顯示屬性的數組的所有對象。

我試圖用我的備份集要做到這一點更新,但它把空到顯示屬性的所有對象:

db.programs_bak.find({}).forEach(function(doc) { db.programs.update({ _id: doc._id }, { showed: doc.showed._i },{ }); }); 

回答

0
db.programs_bak.find({}).forEach(function(doc) { 
     db.programs.update({ _id: doc._id }, 
          {$set : { "showed" : doc.showed._i}}); 
         }); 
+1

護理解釋你已經打了下來代碼或*爲什麼*/*如何*它應該使用 – codeMagic

+0

看來,我錯過了$集。它仍然讓我想知道爲什麼如果我沒有「設置」任何東西,價值是零)。 – Mino

+1

舊數據現在被轉換,壞事是在過去兩週插入的新行現在顯示爲null,因爲它們沒有_i屬性。我必須弄清楚這些。 – Mino