2017-02-08 65 views
0

希望有人在那裏能告訴我在哪裏,我錯了此更新方法:MongoDB的更新方法不工作

changeTaskDetails: function(singleID,detailsTarget){ 
 
    TaskDetails.update({ 
 
     _id: singleID, 
 
    }, { 
 
     $set:{ 
 
     projectType: detailsTarget, 
 
     } 
 
    }); 
 
    console.log(singleID); 
 
    },

這裏是事件:

'submit #editTaskDetails'(event){ 
 
    event.preventDefault(); 
 

 
    var id = FlowRouter.getParam('taskId'); 
 
    const singleDetailsUpdate = Tasks.findOne({_id:id}); 
 

 
    const singleID = singleDetailsUpdate._id; 
 
    const target = event.target; 
 
    const facilityTarget = target.facilityName.value; 
 
    const inspectorTargetName = target.detailsinspector.value; 
 
    const inspectorIdTarget = target.inspectorid.value; 
 
    const detailsTarget = target.detailstype.value; 
 
    const dateTarget = target.TaskDate.value; 
 

 
    console.log(singleID) 
 
    Meteor.call("changeTaskDetails", singleID,detailsTarget); 
 
    },

我可以得到2個道具登錄...但它不更新數據庫。任何一個控制檯都沒有錯誤

+1

如果您在changeTaskDetails上記錄detailsTarget值,您會得到什麼? – bateloche

+1

您是否使用Aldeed Schema 2集合框架?另一個用戶有與該包類似的問題,[鏈接](http://stackoverflow.com/questions/41842750/overwrite-object-in-mongodb/41859259#comment70912404_41859259) – Adam

+0

我記錄了客戶端和服務器上的detailsTarget值,而且都似乎記錄得很好。該字段是一個字符串。我也嘗試從窗體中記錄幾個其他窗體字段,並且他們的日誌沒問題。 是的,我正在使用collection2框架。我應該提到,我有很多其他插入,並刪除方法....這些似乎工作得很好。這是我的第一個更新方法。 – JoethaCoder

回答

0

我想通了!我有一個會話變量控制你何時(或不能)看到更新表單。出於某種原因,這個區域內部的表格被廢棄了。當我刪除了會話,並將該表單添加到主模板中時...它工作正常!