Вы можете попробовать это:
db.getCollection('product_number').aggregate([{
$addFields: {
data: { /** filter returns [] if input array has only F's */
$filter:
{
input: '$product_nums.product_status', /** $product_nums.product_status = ['F'], ['S','F'] */
as: "each",
cond: { $ne: ['$$each', 'F'] }
}
}
}
}, { $match: { data: [] } }, { $project: { data: 0 } }])
Сбор данных:
/* 1 */
{
"_id" : ObjectId("5e2564e7fc4adf6813df71fa"),
"product_nums" : [
{
"product_number" : "123123qwedf2",
"product_status" : "F"
}
]
}
/* 2 */
{
"_id" : ObjectId("5e2570d20b83102cad7adf04"),
"product_nums" : [
{
"product_number" : "123123qwedf",
"product_status" : "S"
},
{
"product_number" : "123123qwedf2",
"product_status" : "F"
}
]
}
/* 3 */
{
"_id" : ObjectId("5e291efcd02e05b694d18244"),
"product_nums" : [
{
"product_number" : "123123qwedf2",
"product_status" : "C"
}
]
}
/* 4 */
{
"_id" : ObjectId("5e2f93bad02e05b694989468"),
"product_nums" : [
{
"product_number" : "123123qwedf",
"product_status" : "F"
},
{
"product_number" : "123123qwedf2",
"product_status" : "F"
}
]
}
Результат:
/* 1 */
{
"_id" : ObjectId("5e2564e7fc4adf6813df71fa"),
"product_nums" : [
{
"product_number" : "123123qwedf2",
"product_status" : "F"
}
]
}
/* 2 */
{
"_id" : ObjectId("5e2f93bad02e05b694989468"),
"product_nums" : [
{
"product_number" : "123123qwedf",
"product_status" : "F"
},
{
"product_number" : "123123qwedf2",
"product_status" : "F"
}
]
}