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