आप $objectToArray
का उपयोग कर सकते हैं (mongoDB 3.4.4 और ऊपर), $filter
ए> और $project
और कुछ इस तरह प्राप्त करें:
db.collection.aggregate([
{
$project: {
obj: {
$objectToArray: "$info"
}
}
},
{
$project: {
_id: 0,
obj: {
$filter: {
input: "$obj",
as: "item",
cond: {
$eq: [
"$$item.v.city",
"NY"
]
}
}
}
}
},
{
$project: {
info: {
$arrayToObject: "$obj"
}
}
},
])
आप इसे यहां काम करते हुए देख सकते हैं
विचार वस्तु को सरणी में तोड़ना, उसे फ़िल्टर करना और फिर उस सरणी को वापस वस्तु में बदलना है।
मैंने city
. पर फ़िल्टर किया लेकिन मुझे यकीन है कि आपको यह विचार मिल गया है।