Cttr
@Cttr
Инженер-программист, основатель Pricegg

MongoDB: перезаписывает ли update одинаковые значения?

Имеется код
db.test.test->insert ({_id: 1, key1: 'value1'})
db.test.test->update ({_id: 1}, {$set: {key1: 'value1'}})

Произойдет ли операции записи "нового" значения на диск или нет? В документации не нашел об этом.
  • Вопрос задан
  • 2753 просмотра
Решения вопроса 1
@zedxxx
Судя по всему, запись не производится:
D:\MongoDB>mongo --verbose
MongoDB shell version: 2.6.3
...
> db.test.insert({_id:1, key1:"value1"})
WriteResult({ "nInserted" : 1 })
> db.test.update({_id:1}, {$set:{key1:"value1"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 0 })
> db.test.update({_id:1}, {$set:{key1:"value2"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
ну как не нашли там об этом черным по белому в самом начале написано
Ответ написан
@antes
Задайте параметру upsert значение true и если элемент найден, он перезаписывается, если нет - то вставляется. Подробнее тут
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы