Thanks for the comments, Alex.  I pushed up your recommended changes.

Regarding the A() query, I did look at that originally.  It unfortunately has quite a few issues.

The syntax mixes Django and MongoDB styles.  The Django part uses "__" and "=" while the MongoDB part uses "." and ","  The Django part resolves db_columns from the models while the MongoDB part requires you to know the column names.

You also run into issues when specifying a field more than once.  For example, the following will return results with letters "abc" because the second exclude overwrites the first on f_dict...

```
qs = DotQueryTestModel.objects.exclude(f_dict=A('letters','abc')).exclude(f_dict=A('letters','bc'))
```

With the changes I’ve proposed, you can write your query in standard Django format, taking into account all of the db_columns and field types, and using the normal Django query methods (exact, contains, in, etc...).  For example...

```
qs = DotQueryTestModel.objects.filter(f_dict__letters__contains='b')
qs = qs.exclude(f_embedded__f_int__in=[10, 12])
qs = qs.filter(Q(f_dict__numbers=1) | Q(f_dict__numbers=4))
```