2016-12-06 151 views
0

我有對象的數組這樣的對象:更新對象

//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

你可以給我的輸入和文件? –

回答

1

這是做到這一點的方式: 這裏找到它: 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}} 
     );