我一直在寻找mongoengine文档和堆栈溢出,似乎没有一个非常明确的答案,所以我问:你如何最好地查询DictField? 示例代码:
class Note(Document):
someData = DictField()
note = Note()
note.someData['someID'] = {"name": "Steve", "age":25}
note.save()
我在文档中找到的最接近的是:
Note.objects(someData__name="Steve")
但这还没有奏效 再次,觉得这应该是一个简单的答案。谢谢你的帮助
答案 0 :(得分:12)
您的错误请求,因为您错过了someID
。
在db中查看结构:
>>> db.note.findOne()
>>> {
"_id": ObjectId("'0'*24")
"someData": {
"someID": {
{"name": "Steve", "age":25}
}
}
}
所以正确的请求将是Note.objects(someData__someID__name="Steve")
。