Привет.
Для каждого элемента входного массива (str), необходимо сделать find с проверкой: если > 1 документа, print name этих документов и идти к следующему, если = 1, то выполнить insert в name и subname (просто изменить 2 поля), если 0 print name и к следующему.
Пример:
var list = [001, 002, 003]; //исходный список номеров документов для исправления
for list_id in list: //для каждого элемента списка запускаем поиск
var counter = db.collection.find ({"name": "abc", "Number": {$in: [list]}}); //в переменную counter вносим кол-во найденных документов для последующего сравнения
if counter is not $gt 1 and $ne 0 then //условие - больше 1 и не равно 0
db.collection.update ({list_id}, {$set: {"name": "cba", "subname": "etc"}}) //изменяем в текущем документе с list_id два поля name и surname
else print ({list_id}); //если документов 0 или больше 1, выводим их номера