django – MongoEngine _types和_cls字段
发布时间:2020-11-17 02:31:12 所属栏目:Python 来源:互联网
导读:为什么mongoengine将_types和_cls字段添加到集合的每个文档中. 它们都是(键,值)对,它们都包含文档模型类的名称.唯一的区别是_types值是一个列表,我认为如果涉及一些继承,它可以有多个模型类名. 但问题是:当所有文档对两个字段都具有相同的值时,为什么我需要
为什么mongoengine将_types和_cls字段添加到集合的每个文档中.
但问题是:当所有文档对两个字段都具有相同的值时,为什么我需要它们存在于集合中的每个文档中? 解决方法Mongoengine允许文件继承.定义类时,元属性allow_inheritance用于允许子类化此特定类._cls和_types字段用于标识对象所属的类. 考虑一个名为User的文档,用于存储用户的信息: class User(Document): meta = {'allow_inheritance': True} # stores information regarding a user 现在考虑一个名为StackOverFlowUser的文档:该文档继承自User文档,并为用户保存一些StackOverflow相关信息: class StackOverFlowUser(User): # stores StackOverflow information of a user 对于这两个文档类,mongoengine将使用名为user的相同集合.无论您创建哪个文档对象,它都将作为文档存储在此集合中. 要区分对象所属的类,将使用_cls和_types字段. 对于User对象: { ... '_cls' = 'User','_types' = ['User','User.StackOverFlowUser'] } 对于StackOverFlowUser对象: { ... '_cls' = 'User.StackOverFlowUser','User.StackOverFlowUser'] } 如果您确定文档不具有子类文档,则将allow_inheritance设置为False,而mongoengine将不保存该文档的_cls和_types字段. (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从python安装脚本中的编译标志中删除ppc
- python – scikit-learn是否执行“真正的”多元回归(多个因
- python标准算法实现数组全排列的方法
- 如何使numba @jit使用所有cpu核心(parallelize numba @jit)
- python-2.7 – OpenCV:libdc1394错误:无法初始化libdc139
- __del__上的Python attributeError
- 如何在python中读出QLineEdit中的文本?
- 处理django包含模板标记中的请求
- Django如何在manage shell中查看查询
- python – 使用httplib2.Http()对象时的最佳实践
推荐文章
站长推荐
- python – numpy – 将非连续数据转换为适当的连
- python – 如何在没有带有pandas的“未命名”行的
- 使用Python / Sympy进行连续傅里叶变换(分析解决
- python – 是否可以使用__rmod__覆盖str的%行为
- python – 如何在DataFrame中增加groupby中的行数
- python – 如何在窗口最小化时发送文本?
- python – django中的高效分页和数据库查询
- python:re.sub的replace函数不接受额外的参数 –
- python – 将NumPy对象与“None”进行比较时的Fu
- python – Pandas Dataframe查找所有列等于的行
热点阅读