Wie man den MongoDB Feldnamen in beliebiger Tiefe findet

Ich habe schlampige XML-Daten in eine Mongo-Datenbank importiert. Jedes Dokument verfügt über verschachtelte Unterdokumente mit einer Tiefe von etwa 5 bis 10. Ich möchte nach () Dokumenten suchen, die einen bestimmten Wert für ein bestimmtes Feld haben, wobei das Feld in einer beliebigen Tiefe in den Unterdokumenten erscheinen kann (und möglicherweise mehrmals vorkommt).

ch ziehe momentan jedes Dokument in Python und suche dann in diesem Wörterbuch, aber es wäre schön, wenn ich einen Filterprototyp angeben könnte, bei dem die Datenbank nur Dokumente zurückgibt, deren Inhalt irgendwo einen bestimmten Wert des Feldnamens enthäl

Hier ist ein Beispieldokument:

{
    "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!"
            }
        }
   }
}

Also, ich möchte nach Dokumenten suchen, die ein "find-this" -Feld haben, und (wenn möglich) nach Dokumenten, die einen bestimmten Wert eines "find-this" -Felds haben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage