2015-09-02 92 views
-1

集合...這是我擁有的集合的結構。我想要幫助更新查詢。Mongo更新數組的子文檔

{ 
    id: 1, 
    line_items: [ 
    { 
     id: 43, 
     review_request_sent: true 
    } 
    ] 
}, 
{ 
    id: 2, 
    line_items: [ 
    { 
     id: 1, 
     review_request_sent: false 
    }, 
    { 
     id: 39 
    }, 
] 
}, 
{ 
    id: 3, 
    line_items: [ 
    { 
    id: 23, 
    review_request_sent: true 
    }, 
    { 
    id: 85, 
    review_request_sent: true 
    }, 
    { 
    id: 12, 
    review_request_sent: false 
    } 
    ] 
} 

我想幫助更新文檔。讓其中ID爲3,LINE_ITEM的對象ID是12

所以最後文件變得

{ 
    id: 3, 
    line_items: [ 
    { 
    id: 23, 
    review_request_sent: true 
    }, 
    { 
    id: 85, 
    review_request_sent: true 
    }, 
    { 
    id: 12, 
    review_request_sent: true 
    } 
    ] 
} 

回答

1

可以使用$positional operator發言權更新review_request_sent爲true:

Model.update(
    { 'id': 3, 'line_items.id': 12 }, 
    { $set: { 
     'line_items.$.review_request_sent': false 
    }}, function (err, numAffected) { ... } 
);