I have objects that look like this:
[
{
"url": "a",
"nested_object_keys": [
{
"vendor": "terraform",
"tag": "some_tag"
},
{
"vendor": "terraform",
"tag": "some_other_tag"
}
]
},
{
"url": "c",
"nested_object_keys": [
{
"vendor": "terraform",
"tag": "some_tag"
}
]
},
{
"url": "b",
"nested_object_keys": [
{
"vendor": "terraform",
"tag": "some_tag"
},
{
"vendor": "terraform",
"tag": "some_other_tag"
}
]
}
]
I want to find objects whose nested object keys match {'tag': 'some_tag'} AND {'tag': 'some_other_tag'}.
I tried a few different ways (using $elemMatch) and the only one that works is:
query = {
'$and': [
{
'nested_object_keys': {
'$elemMatch': {'tag': 'some_tag'}
}
},
{
'nested_object_keys': {
'$elemMatch': {'tag': 'some_other_tag'}
}
}
]
}
Is there a more compact way to do this?