Có cách nào để cập nhật giá trị trong một đối tượng không?
{
_id: 1,
name: 'John Smith',
items: [{
id: 1,
name: 'item 1',
value: 'one'
},{
id: 2,
name: 'item 2',
value: 'two'
}]
}
Giả sử tôi muốn cập nhật tên và giá trị các mục cho mục có id = 2;
Tôi đã thử w / mongoose sau:
var update = {name: 'updated item2', value: 'two updated'};
Person.update({'items.id': 2}, {'$set': {'items.$': update}}, function(err) { ...
Vấn đề với cách tiếp cận này là nó cập nhật / thiết lập toàn bộ đối tượng, do đó, trong trường hợp này, tôi mất trường id.
Có cách nào tốt hơn trong mongoose để đặt các giá trị nhất định trong một mảng nhưng để lại các giá trị khác không?
Tôi cũng đã truy vấn chỉ Người:
Person.find({...}, function(err, person) {
person.items ..... // I might be able to search through all the items here and find item with id 2 then update the values I want and call person.save().
});