动态命名密钥Mongoengine

2024-09-29 05:15:51 发布

您现在位置:Python中文网/ 问答频道 /正文

如何创建动态mongoengine密钥?这样,我将能够查询的名称,例如。 以下是我的目标示例:

{
  "joe": {
   "score": 20
  },
  "bob": {
   "score": 30
  }
...
}

所以模型应该是这样的:

class user{name}(EmbeddedDocument):
    score = IntField()

class users(Document):
    user(EmbeddedDocumentField)
    score = IntField()

是否有可能通过mongoengine实现这一目标


Tags: name模型名称示例目标密钥动态class
1条回答
网友
1楼 · 发布于 2024-09-29 05:15:51

{a1}可能会帮助您到达那里,请参见下文

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}}}]

相关问题 更多 >