2017-03-28 3 views
0

Ich habe dieses Dokument/Objekt in meiner mongoDB Datenbank und ich werde container und scheduleContainerTypeEnums von OVERTIME_POOL zu SPARE_TIME aktualisieren. Deshalb habe ich versucht, dies:aktualisieren mongoDB Dokument mit foreach von Javascript

db.ScheduleRecordMonthCompendiumConfirmation.find().forEach(function (doc) {  
    doc.scheduleRecordDayCompendiums.forEach(function (sch) { 
     sch.confirmedScheduleIntervalContainers.forEach(function (c) { 
      if (c.containerType === "OVERTIME_POOL") { 
       c.containerType = "ADDITIONAL_HOURS";      
      } 
     } 
    }); 
db.ScheduleRecordMonthCompendiumConfirmation.save(doc); 
}); 

Aber ohne Erfolg. Weiß jemand, was ich falsch mache?

{ 
"_id" : ObjectId("57f283d4e4b039723ca44d64"), 
"_class" : "mydomain.MyClass", 
"scheduleRecordDayCompendiums" : [ 
    { 
     "_id" : null, 
     "institutionUserConnectionId" : "57127240e4b0f77e64ea560e",   
     "confirmedScheduleIntervalContainers" : [ 
      { 
       "_id" : null, 
       "containerType" : "OVERTIME_POOL",    
      }   
     ], 
     "scheduleContainerTypeEnums" : [ 
      "OVERTIME_POOL" 
     ], 
     ... 
+0

können Sie versuchen, das 'doc' direkt vor dem Speichern der gleichen in db zu drucken? – gurvinder372

+0

Ich habe ** print (doc); ** hinzugefügt, aber nichts wird gedruckt. – quma

+0

versuchen Sie 'console.log (doc);' – gurvinder372

Antwort

0

Ihr Javascript nicht korrekt strukturiert ist. Sie fehlen schließende Klammern für doc.scheduleRecordDayCompendiums.forEach

db.ScheduleRecordMonthCompendiumConfirmation.find().forEach(function (doc) {  
    doc.scheduleRecordDayCompendiums.forEach(function (sch) { 
     sch.confirmedScheduleIntervalContainers.forEach(function (c) { 
      if (c.containerType === "OVERTIME_POOL") { 
       c.containerType = "ADDITIONAL_HOURS";      
      } 
     }) 
    }); 
db.ScheduleRecordMonthCompendiumConfirmation.save(doc); 
}); 
0
db.ScheduleRecordMonthCompendiumConfirmation.find().forEach(function (doc) {  
    doc.scheduleRecordDayCompendiums.forEach(function (sch) { 
     sch.confirmedScheduleIntervalContainers.forEach(function (c) { 
      if (c.containerType === "OVERTIME_POOL") { 
       c.containerType = "ADDITIONAL_HOURS";      
      } 
     } 
    }); 

doc.save(function(error){ 
    if(error){ 
    console.log(error) 
    } 
}); 
}); 
+0

Ich weiß es nicht, es scheint richtig, aber es funktioniert nicht und es gibt keine Ausgabe – quma

Verwandte Themen