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, может мне помочь. Заранее спасибо! :)