以下のクエリを使用できます
$expr
を使用している場合
そうすれば、その中で簡単に集計演算子を使用できます。したがって、.dot
を使用する代わりに 要素を見つけるための表記法では、 $arrayElemAt
必要な要素を選択する機能を提供する演算子。
db.table.aggregate([
{ '$match': {
'$expr': {
'$and': [
{ '$eq': [{ '$size': '$events' }, 4] },
{ '$lt': [{ '$arrayElemAt': ['$events.updated', 0] }, '2019-05-05'] }
]
}
}}
])
またはあなたがやろうとしていた方法
db.collection.aggregate([
{ "$match": {
"events.0.updated": { "$lt": "2019-05-05" },
"$expr": { "$eq": [{ "$size": "$events" }, 4] }
}}
])
$expr
を確認できます
動作