आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं
अगर आप $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
देख सकते हैं
व्यवहार यहां