mongoengine filter on DictField's dynamic keys

175 views
Skip to first unread message

Amit Diwan

unread,
Jun 6, 2016, 5:09:33 AM6/6/16
to MongoEngine Users
    class UserThings(DynamicDocument):
        username
= StringField()
        things
= DictField()
   
    dcrosta_things
= UserThings(username='dcrosta')
    dcrosta_things
.things['foo'] = 'bar'
    dcrosta_things
.things['bad'] = 'quack'
    dcrosta_things
.save()



Results in a MongoDB document like:

    { _id: ObjectId(...),
      _types: ["UserThings"],
      _cls: "UserThings",
      username: "dcrosta",
      things: {
        foo: "bar",
        baz: "quack"
      }
    }

Im using mongoengine and I'm not able to query on dict field's keys.

for e.g I have a list of things  `
thing_list = ['foo', 'faa', 'baz', 'xyz']

`

and I want to filter all `UserThings` that contains anyof these things...

something like ..  `
UserThings.objeect.filter(things__in=thing_list)

`

definitely this wont work. IS there any way to perform filtering on variable/dynamic keys on dictfield. if not, can we do it using pymongo/raw query?
Reply all
Reply to author
Forward
0 new messages