Документ Python Pymongo Retrive с фильтрами только на основе дочерних документов
Я пытаюсь отфильтровать и извлечь данные из mongodb, используя python/pymongo.
У меня есть данные как ниже формат
[{
'username':'abc'
'data':
[
{
'qty': 220,
'name': 'Test123',
'price': 2200,
'details':
[
{
'qty': 60,
'isa': True,
'code': 'SN1'
},
{
'qty': 40,
'isa': False,
'code': 'SN1'
},
{
'qty': 120,
'isa': True,
'code': 'SN2'
},
{
'qty': 30,
'isa': True,
'code': 'SN1'
}
]
},
{
'qty': 100,
'name': 'Test789',
'price': 3500,
'details':
[
{
'qty': 60,
'isa': True,
'code': 'SN1'
}
]
}
]
},
{
'username':'xyz'
'data': []
}]
Хотел получить одну запись из массива на основе приведенных ниже фильтров.
username : 'abc' , data.name : 'Test123' , data.details.isa : True, data.details.code : 'SN1'
Я могу сделать запрос с синтаксисом ниже, но он даст мне вывод со всеми дочерними элементами data.details
collection.find_one( { "username": 'abc', 'data.name': 'Test123', 'data.details.isa': True, 'data.details.code':'SN1' })
Проблема в том, как получить выходные данные только с отфильтрованными вложенными документами, как указано ниже?
{
'username':'abc'
'data':
[
{
'qty': 220,
'name': 'Test123',
'price': 2200,
'details':
[
{
'qty': 60,
'isa': True,
'code': 'SN1'
},
{
'qty': 30,
'isa': True,
'code': 'SN1'
}
]
}
]
}