2015-09-02 58 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) { ... } 
);