Согласно документации mongodbs, позиционный оператор $ [] должен работать со всеми элементами массива, но не работает с $ unset.Он изменяет 0 документов
Мне нужно сделать это программно, но можно сделать это только вручную, развернув массив.
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.$[].contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 0 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.0.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 1633 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.1.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 517 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.2.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 180 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.3.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 87 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.4.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 23 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.5.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 10 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.6.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 3 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.7.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 1 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.8.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 1 }
aireclaimRs:PRIMARY> db.cases.updateMany({},{$unset: {"casoOriginal.people.9.contract":""}},{multi:true})
{ "acknowledged" : true, "matchedCount" : 2502, "modifiedCount" : 0 }
Ожидается: 1-я операция должна выполнить то же, что и следующие операциикомбинированный.
Результат: 1-я операция изменяет 0 документов, следующие операции отмены корректно изменяют документы.