Как найти имя поля MongoDB на произвольной глубине
Я импортировал некие небрежные XML-данные в базу данных Mongo. Каждый документ имеет вложенные вложенные документы на глубину около 5-10. Я хотел бы найти () документы, которые имеют определенное значение определенного поля, где поле может появляться на любой глубине в поддокументах (и может появляться несколько раз).
В настоящее время я загружаю каждый документ в Python и затем ищу в этом словаре, но было бы хорошо, если бы я мог указать прототип фильтра, в котором база данных будет возвращать только те документы, которые имеют определенное значение имени поля где-то в их содержимом.
Вот пример документа:
{
"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!"
}
}
}
}
Итак, я хотел бы найти документы, которые имеют поле «найти-это», и (если возможно), чтобы иметь возможность найти документы, которые имеют конкретное значение поля «найти-это».