3
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 查询吗?

4

0 回答 0