mongoengine过滤DictField的动态密钥

时间:2016-06-06 08:54:50

标签: mongodb mongodb-query pymongo mongoengine flask-mongoengine

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()

MongoDB文档中的结果如:

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

我使用的是mongoengine,我无法查询dict字段的密钥。

例如,我有一个事项列表thing_list = ['foo', 'faa', 'baz', 'xyz']

我希望过滤包含任何这些内容的所有UserThings ...

类似...... UserThings.objeect.filter(things__in=thing_list)

绝对不会这样。有没有办法在dictfield上对变量/动态键执行过滤。如果没有,我们可以使用pymongo / raw查询吗?

0 个答案:

没有答案