Puoi utilizzare la query seguente con $elemMatch
per far corrispondere entrambi i valori dell'array.
Qualcosa come
db.collection_name.aggregate({
"$match": {
"item": {
"$elemMatch": {
"property.0": "attr1",
"property.1": /^\+/
}
}
}
});
Inoltre, puoi utilizzare $all
operatore se non vuoi fare riferimento all'indice dell'array.
db.collection_name.aggregate({
"$match": {
"item": {
"$elemMatch": {
"property": {
"$all": [
"attr1",
/^\+/
]
}
}
}
}
});