개체의 값을 업데이트하는 방법이 있습니까?
{
_id: 1,
name: 'John Smith',
items: [{
id: 1,
name: 'item 1',
value: 'one'
},{
id: 2,
name: 'item 2',
value: 'two'
}]
}
id = 2 인 항목의 이름과 값 항목을 업데이트하고 싶다고 가정 해 보겠습니다.
나는 몽구스와 함께 다음을 시도했습니다.
var update = {name: 'updated item2', value: 'two updated'};
Person.update({'items.id': 2}, {'$set': {'items.$': update}}, function(err) { ...
이 접근 방식의 문제점은 전체 개체를 업데이트 / 설정한다는 것이므로이 경우에는 id 필드가 손실됩니다.
몽구스에서 배열의 특정 값을 설정하고 다른 값은 그대로 두는 더 좋은 방법이 있습니까?
나는 또한 Person에 대해 쿼리했습니다.
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().
});