воскресенье, 5 ноября 2017 г.

MongoDb основные операции. Часть 2

Обновление данных

Чтобы обновить данные воспользуемся, командой update, например добавил з/п для Бориса:
db.employees.update({name:'Boris'}, {salary:7000});
После обновления попробуем получить запись:
db.employees.find({name:'Boris'});
Запись не найдена, т.к. обычный update полностью заменяет документ. Чтобы обновлять только нужные поля необходимо воспользоваться модификатором $set:

db.employees.update({salary:7000}, {$set:{name: 'Boris', hired: new Date(2002,2,13,7,47), skills: ['smart','happy'], age: 60, gender: 'm'}});
Кроме модификатора $set есть другие, например, $inc увеличивает на заданную величину число или $push добавлет элемент в массив:

db.employees.update({name:'Boris'}, {$inc:{salary:200}, $push:{skills:'responsible'}});

Вставка/Обновление

Чтобы выполнить обновление или вствку записи при ее отсутствии необходимо передать третий параметр-флаг, true, например, на склад завезли канцелярские товары, а именно ручки:
db.storage.update({stationery:'pen'}, {$inc:{count: 200}},true)
При первом выполнении произойдет создание документы, а при втором - увеличение счетчика на 200 единиц.

Множественное обновление

Команда update обновляет только первую найденную запись, чтобы обновить все записи, удовлетворяющие заданному условию, необходимо установить четвертый параметр в true. Так же необходимо заметить, что множественное обновление работает только с модификатором, чтобы не произошло замены документов, только обновление полей:

db.employees.update({}, {$set:{isIll:false}}, false, true);

Комментариев нет :

Отправить комментарий