2013-08-15 35 views
6

Tôi đã tìm kiếm tài liệu mongoengine và xung quanh tràn ngăn xếp và dường như không có câu trả lời rõ ràng cho điều này vì vậy tôi hỏi: làm thế nào để bạn truy vấn tốt nhất DictField? mã ví dụ:Cách tốt nhất để truy vấn DictField ở MongoEngine

class Note(Document): 
    someData = DictField() 

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

Gần nhất tôi có thể tìm thấy trong các tài liệu sẽ là:

Note.objects(someData__name="Steve") 

nhưng điều đó đã không được làm việc Một lần nữa, cảm thấy như thế này phải là một câu trả lời đơn giản. Cảm ơn sự giúp đỡ của bạn

Trả lời

9

Bạn có yêu cầu sai, vì bạn bỏ lỡ someID.

Hẹn gặp lại cấu trúc trong db:

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

yêu cầu Vì vậy, ngay sẽ Note.objects(someData__someID__name="Steve").

Các vấn đề liên quan