如何创建一个动态的mongoengine密钥?这样,我就可以按名称进行查询。下面是我的目标:
{
"joe": {
"score": 20
},
"bob": {
"score": 30
}
...
}
所以模型应该是这样的:
class user{name}(EmbeddedDocument):
score = IntField()
class users(Document):
user(EmbeddedDocumentField)
score = IntField()
是否有可能实现它与蒙古引擎?
DictField可能会帮助您到达那里,见下面
from mongoengine import *
connect()
class UserScore(EmbeddedDocument):
score = IntField()
class Simple(Document):
mapping = DictField(field=EmbeddedDocumentField(UserScore))
e = Simple()
e.mapping["John"] = UserScore(score=5)
e.mapping["Bob"] = UserScore(score=10)
e.save()
# print the raw objects as stored in mongo
print(list(Simple.objects.as_pymongo()) # [{'_id': ObjectId('603cc7bca206e448e82c7437'), 'mapping': {'John': {'score': 5}, 'Bob': {'score': 10}}}]