2013-08-15 10 views
6

私はmongoengineのドキュメントとスタックオーバーフローを捜し求めてきましたが、これには非常に明確な答えはないようです。 DictField? サンプルコードは:MongoEngineのDictFieldを照会する最良の方法

Note.objects(someData__name="Steve") 

それは、これは単純な答えでなければなりませんように感じる、再び 作業されていない。

class Note(Document): 
    someData = DictField() 

note = Note() 
note.someData['someID'] = {"name": "Steve", "age":25} 
note.save() 

私はドキュメントで見つけることができる最も近いだろう。あなたのお手伝いをありがとう

答えて

9

あなたは間違っているので、someIDが必要です。

あなたは、DB内の構造を参照してください:

>>> db.note.findOne() 
>>> { 
    "_id": ObjectId("'0'*24") 
    "someData": { 
     "someID": { 
      {"name": "Steve", "age":25} 
     } 
    } 
} 

だから、右のリクエストがNote.objects(someData__someID__name="Steve")になります。

関連する問題