9

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

class Note(Document):
    someData = DictField()

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

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

Note.objects(someData__name="Steve") 

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

4

1 回答 1

15

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

db 中的结构见:

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

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

于 2013-08-16T05:21:36.627 回答