title: How to find MongoDB field name at arbitrary depth
body: <p>I imported some sort-of sloppy XML data into a Mongo database.  Each Document has nested sub-documents to a depth of around 5-10.  I would like to find() documents that have a particular value of a particular field, where the field may appear at any depth in the sub-documents (and may appear multiple times).</p>
  
  <p>I am currently pulling each Document into Python and then searching that dictionary, but it would be nice if I could state a filter prototype where the database would only return documents that have a particular value of the field name somewhere in their contents.</p>
  
  <p>Here is an example document:</p>
  
  <pre class="lang-js prettyprint-override"><code>{
      "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!"
              }
          }
     }
  }
  </code></pre>
  
  <p>So, I'd like to find documents that have a "find-this" field, and (if possible) to be able to find documents that have a particular value of a "find-this" field.</p>