¿Hay alguna forma de actualizar los valores de un objeto?
{
_id: 1,
name: 'John Smith',
items: [{
id: 1,
name: 'item 1',
value: 'one'
},{
id: 2,
name: 'item 2',
value: 'two'
}]
}
Digamos que quiero actualizar los elementos de nombre y valor para el elemento donde id = 2;
Probé lo siguiente con mangosta:
var update = {name: 'updated item2', value: 'two updated'};
Person.update({'items.id': 2}, {'$set': {'items.$': update}}, function(err) { ...
El problema con este enfoque es que actualiza / configura todo el objeto, por lo tanto, en este caso, pierdo el campo de identificación.
¿Hay una mejor manera en la mangosta de establecer ciertos valores en una matriz pero dejar otros valores en paz?
También he consultado solo por la Persona:
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().
});