У меня есть коллекция AccountSupport. У меня есть массив свойств поддержки. Я хочу отфильтровать запись по родительскому свойству и свойству массива
db = {
"AccountSupport": [
{
"_id" : ObjectId("5e9c6170b38c373530c5b00a"),
"accountName" : "domestic",
"supports" : [
{
"subject" : "Traverse",
"desc" : "Travers support consolidation",
},
{
"subject" : "Non Traverse",
"desc" : "Non Travers support consolidation",
},
{
"subject" : "Domestic Traverse",
"desc" : "Domestic Travers support consolidation",
}
],
}
Я хочу отфильтровать по accountName и support.subject.
Ниже мой запрос
db.AccountSupport.aggregate([
{
"$match": {
"$and": [
{
"supports.subject": "Traverse"
},
{
"accountName": "domestic"
}
]
}
},
{
"$unwind": "$supports"
},
{
"$project": {
"SupportName": "$supports.subject",
"desc": "$supports.desc"
}
}
])
Приведенный выше запрос возвращает мне все опоры определенного accountName, тогда как мне нужен только один объект соответствующего субъекта. Это самый простой способ сделать это?
MongoPlayGround
MongoPlayGround для моего запроса