Как найти имя поля 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!"
            }
        }
   }
}

Итак, я хотел бы найти документы, которые имеют поле «найти-это», и (если возможно), чтобы иметь возможность найти документы, которые имеют конкретное значение поля «найти-это».

Ответы на вопрос(2)

Ваш ответ на вопрос