- MongoEngine 教程
- MongoEngine - 首页
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 对象文档映射器
- MongoEngine - 安装
- MongoEngine - 连接到 MongoDB 数据库
- MongoEngine - 文档类
- MongoEngine - 动态模式
- MongoEngine - 字段
- MongoEngine - 添加/删除文档
- MongoEngine - 查询数据库
- MongoEngine - 过滤器
- MongoEngine - 查询操作符
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定义 QuerySet
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高级查询
- MongoEngine - 文档继承
- MongoEngine - 原子更新
- MongoEngine - Javascript
- MongoEngine - GridFS
- MongoEngine - 信号
- MongoEngine - 文本搜索
- MongoEngine - 扩展
- MongoEngine 有用资源
- MongoEngine - 快速指南
- MongoEngine - 有用资源
- MongoEngine - 讨论
MongoEngine - 动态模式
MongoDB 数据库的优势之一是它支持动态模式。要创建支持动态模式的类,请将其子类化自 DynamicDocument 基类。以下是具有动态模式的 Student 类:
>>> class student(DynamicDocument): ... name=StringField()
第一步是像以前一样添加第一个文档。
>>> s1=student() >>> s1.name="Tara" >>> connect('mydb') >>> s1.save()
现在,向第二个文档添加另一个属性并保存。
>>> s2=student() >>> setattr(s2,'age',20) >>> s2.name='Lara' >>> s2.save()
在数据库中,student 集合将显示两个具有动态模式的文档。
文档类的 meta 字典可以通过指定 max_documents 和 max_size 来使用带上限的集合。
max_documents - 允许存储在集合中的最大文档数。
max_size - 集合的最大大小(以字节为单位)。在 MongoDB 内部和 mongoengine 之前,max_size 会四舍五入到下一个 256 的倍数。
如果未指定 max_size 而指定了 max_documents,则 max_size 默认为 10485760 字节(10MB)。
文档类的其他参数如下所示:
objects | 在访问时延迟创建的 QuerySet 对象。 |
cascade_save() | 递归保存文档上的任何引用和泛型引用。 |
clean() | 在运行验证之前执行文档级别数据清理的钩子。 |
create_index() | 根据需要创建给定的索引。 |
drop_collection() | 从数据库中删除与这种文档类型关联的整个集合。 |
from_json() | 将 json 数据转换为文档实例。 |
modify() | 对数据库中的文档执行原子更新,并使用更新后的版本重新加载文档对象。 |
pk | 获取主键。 |
save() | 将文档保存到数据库。如果文档已存在,则将更新它,否则将创建它。返回已保存的对象实例。 |
delete() | 从数据库中删除当前文档。 |
insert() | 执行批量插入操作。 |
广告