我正在寻找一种采用json模式并在运行时动态创建mongoengine类的方法。
例如:
下面编写的mongoengine类
class user(Document):
_id = StringField(required=False) # mongodb id
name = StringField(required=True) # user name
email= StringField(required=False,regex="^[a-zA-Z0-9]*@mydomain.com$") # user email
将与此模式生成的在运行时动态生成的类相同
{
"type":"object",
"properties":{
"_id" : {"type":"string"},
"name" : {"type":"string"},
"email" : {"pattern":"^[a-zA-Z0-9]*@mydomain.com$"}
}
}
有什么建议么?
最佳答案
您可以动态创建python类,如下所示:
user_properties = {
'_id': StringField(required=False), # mongodb id
'name': StringField(required=True), # user name
'email': StringField(required=False,regex="^[a-zA-Z0-9]*@mydomain.com$"), # user email
}
User = type("User", (Document, ), user_properties)
其余的仅是来自dict的转换器,其输入上提供了“您的模式”,该转换器将转换为dict user_properties
。另外,这是my answer,也可以解决类似的问题“How to generate a model for a mongoengine Document from an already existing collection”。
关于python - 从json模式动态创建mongoengine类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33920062/