Bir nesnedeki değerleri güncellemenin bir yolu var mı?
{
_id: 1,
name: 'John Smith',
items: [{
id: 1,
name: 'item 1',
value: 'one'
},{
id: 2,
name: 'item 2',
value: 'two'
}]
}
İd = 2 olan öğe için isim ve değer öğelerini güncellemek istiyorum diyelim.
Aşağıdakileri w / firavun faresi denedim:
var update = {name: 'updated item2', value: 'two updated'};
Person.update({'items.id': 2}, {'$set': {'items.$': update}}, function(err) { ...
Bu yaklaşımla ilgili sorun, tüm nesneyi güncellemesi / ayarlamasıdır, bu nedenle bu durumda kimlik alanını kaybediyorum.
Firavun faresinde bir dizide belirli değerleri ayarlamanın ancak diğer değerleri olduğu gibi bırakmanın daha iyi bir yolu var mı?
Ayrıca sadece Kişi için de sorguladım:
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().
});