更新对象

问题描述:

我有对象的数组这样的对象:更新对象

//restMenuType({_id: 'abcde', hasItems: [{itemId: 'a', sortId: 1}, {itemId: 'b', sortId: 2}]}) 

我想,以取代这两个对象的sortId键:

'replaceItemsPositionUp': function(typeId, prevId, curId, prevSortId, curSortId){ 
     RestMenuTypes.update({ 
      _id: typeId, 
      hasItems: {$elemMatch: {itemId: curId}}}, 
      {$set: {'hasItems.sortId': prevSortId}} 
     ); 
     RestMenuTypes.update({ 
       _id: typeId, 
       hasItems: {$elemMatch: {itemId: prevId}}}, 
      {$set: {'hasItems.sortId': curSortId}} 
     ); 

    } 

是什么你正确的方式来做到这一点? 谢谢。

+0

它看起来不错,有什么问题在这里? –

+0

我得到一个通用的错误500. –

+0

你可以给我的输入和文件? –

这是做到这一点的方式: 这里找到它: Update field in exact element array in MongoDB

RestMenuTypes.update({ 
      _id: typeId, 
      'hasItems.itemId': curId}, 
      {$set: { "hasItems.$.sortId": prevSortId}} 
     ); 
     return RestMenuTypes.update({ 
       _id: typeId, 
       'hasItems.itemId': prevId}, 
      {$set: {'hasItems.$.sortId': curSortId}} 
     );