MongoDB $ pull из вложенного массива на основе набора критериев

Итак, я хочу обновить все документы, соответствующие приведенному ниже запросу:

var searchArray = ["AH Refer"
];
db.ReasonTest.find({ 
$and: [
    {
        "Values.Reason": {
            $in: searchArray
        }
    },
    {
        "Values.Modules": {
            $all: ["Provider Search"]
        }
    }
]
});

Моя структура документа выглядит так:

{
"_id" : ObjectId("537398e92db5868b145f5f29"),
"ID" : NumberLong(1),
"Name" : "MCC",
"Values" : [ 
    {
        "ID" : NumberLong(1016),
        "Reason" : "COB",
        "Modules" : [ 
            "SRA"
        ]
    }, 
    {
        "ID" : NumberLong(104),
        "Reason" : "AH Refer",
        "Modules" : [ 
            "Provider Search"
        ]

    }
]
}

И в основном, что я хочу сделать, это найти все Причины (корневой документ), который имеет одно из значений выше (например, «AH Refer») в поле «Причины» массива «Значения». Если у них есть «Поиск поставщика» в массиве модулей, я хочу удалить «Поиск поставщика» из массива модулей по этому значению в «Значения». Мне очень тяжело с этим клиентом. Очевидно, что их структура не идеальна (поддержка вложенных массивов не очень хороша в Mongo), но я надеюсь, что один из вас, wizkids, может мне помочь. Заранее спасибо! :)