2016-12-06 5 views
0

Ich habe ein Objekt mit einer Reihe von Objekten wie folgt aus:Updating Objekt in einem Array von Objekten

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

Ich versuche, die SortID Schlüssel auf beiden Objekte zu ersetzen:

'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}} 
     ); 

    } 

Was ist Der richtige Weg, es zu tun? Danke.

+0

es sieht gut aus, was ist das Problem hier? –

+0

Ich bekomme einen generischen Fehler 500. –

+0

können Sie mir die Eingabe und das Dokument geben? –

Antwort

1

Das ist der Weg, es zu tun ist: es hier gefunden: 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}} 
     ); 
Verwandte Themen