आपको $objectToArray
से शुरुआत करनी होगी। अपनी चाबियों को गतिशील रूप से पढ़ने के लिए। फिर आप $map
कर सकते हैं गुणों के साथ $anyElementTrue
यह पता लगाने के लिए कि thing
. में कोई नेस्टेड फ़ील्ड है या नहीं जिसमें {"attribute1":"typeC"}
. है :
db.collection.aggregate([
{
$match: {
$expr: {
$anyElementTrue: {
$map: {
input: { $objectToArray: "$thing" },
in: { $eq: [ "$$this.v.attribute1", "typeC" ] }
}
}
}
}
}
])