Как правило, обновление имеет следующую форму:
db.collection.update( criteria, objNew, upsert, multi )
Если критерии определяют документ для обновления, objNew указывает новый документ для замены старого, upsert - этологическое значение, которое, если оно истинно, выполняет upsert (если запись не существует, создайте ее), а multi - логическое значение, которое сообщает mongo, что все документы, соответствующие критериям, должны быть обновлены (а не только один - который используется по умолчанию)
Я получил эту информацию от здесь
Я не знаком с MongoTemplate, но я взглянул на документы, и похоже, что их функция обновления поддерживает функциональность upsert.Вы должны иметь возможность использовать его, передавая истинное логическое значение в качестве третьего параметра для вашего вызова обновления.
Я видел это в методе doUpdate, описанном здесь
Позвольтея знаю, если это работает.