Причина, по которой он не работает для вас, заключается в том, что вы выполняете операцию поиска непосредственно в массиве.
При запросе вещей в массиве вы можете использовать $elemMatch
для получения всего документа , который содержит соответствующий элемент массива.
Если вам нужен пользовательский вывод, вы можете использовать Aggregation с операцией $unwind
в конвейере в поле массива.
Попробуйте это в своей коллекции и поймите, что она делает
db.collectionName.aggregate([{
$unwind:"$array"
},{
$match:{
$and:[
{"array.id":'your_id'},
{"array.is_active":boolean}
]
}
}
])