在MongoEngine中查询DictField的最佳方法

Mat*_*vis 9 mongoengine

我一直在寻找mongoengine文档和堆栈溢出,似乎没有一个非常明确的答案,所以我问:你如何最好地查询DictField?示例代码:

class Note(Document):
    someData = DictField()

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

我在文档中找到的最接近的是:

Note.objects(someData__name="Steve") 
Run Code Online (Sandbox Code Playgroud)

但这还没有再次起作用,觉得这应该是一个简单的答案.谢谢你的帮助

tbi*_*icr 14

你有错误的要求,因为你错过了someID.

在db中看到你的结构:

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

所以正确的要求将是Note.objects(someData__someID__name="Steve").