我有一个像这样的对象数组的对象:
//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 :(得分: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}}
);