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 クエリを使用して実行できますか?