Como encontrar o nome do campo MongoDB em profundidade arbitrária
Importei alguns dados XML desleixados para um banco de dados Mongo. Cada documento aninhou sub-documentos a uma profundidade de 5 a 10. Gostaria de encontrar () documentos que tenham um valor específico de um campo específico, onde o campo possa aparecer em qualquer profundidade nos sub-documentos (e pode aparecer várias vezes).
Atualmente, estou puxando cada documento para o Python e pesquisando nesse dicionário, mas seria bom se eu pudesse indicar um protótipo de filtro no qual o banco de dados retornaria apenas documentos que tenham um valor específico do nome do campo em algum lugar do conteúdo.
Aqui está um exemplo de documento:
{
"foo": 1,
"bar": 2,
"find-this": "Yes!",
"stuff": {
"baz": 3,
"gobble": [
"wibble",
"wobble",
{
"all-fall-down": 4,
"find-this": "please find me"
}
],
"plugh": {
"plove": {
"find-this": "Here too!"
}
}
}
}
Portanto, gostaria de encontrar documentos que tenham um campo "encontre-isto" e (se possível) para poder encontrar documentos que tenham um valor específico de um campo "encontre-este".