了解以下版本中的新功能:
5.2 中的新增功能
本部分列出了以下补丁版本中引入的更改:
版本 5.2.4
Django MongoDB后端 v5.2.4发布包含以下功能、改进和修复:
通过将复杂条件从
$match阶段推送到$lookup阶段,提高使用$lookup聚合阶段的连接操作的性能
版本 5.2.3
Django MongoDB后端 v5.2.3发布包含以下功能、改进和修复:
防止
QuerySet.union()查询重复$project管道阶段。更新
Value类以在$literal操作符中包装字符串、字典和元组值,从而防止MongoDB将它们解释为表达式。同样,出于同样的原因,更新模型的查询现在会将值包装在$literal操作符中。使用
localField和foreignField简化$lookup查询。
版本 5.2.2
Django MongoDB后端 v5.2.2发布包含以下功能、改进和修复:
添加以下
SearchIndex参数,允许您创建更复杂的索引:field_mappingsanalyzersearch_analyzer
要学习;了解更多信息,请参阅索引指南中的 搜索索引。
修复了使用数据库转换器加载包含
EmbeddedModel字段的模型时出现的KeyError异常(如果该字段不存在于数据中)。确保
db_column参数适用于EmbeddedModel字段。将
EmbeddedModelField的搜索索引类型和PolymorphicEmbeddedModelField值从embeddedDocuments更正为document。修复了未初始化数据库连接时出现的
transaction.atomic()错误。弃用了
django_mongodb_backend.utils.parse_uri()方法。未来发布中已删除此方法。
版本 5.2.1
Django MongoDB后端 v5.2.1发布包含以下功能、改进和修复:
添加了对在
DATABASES["HOST"]键中指定连接字符串的支持,而不是使用django_mongodb_backend.utils.parse_uri()方法。要学习;了解更多信息,请参阅《配置数据库连接》指南中的自动配置数据库设置。指示添加或删除搜索索引的迁移操作等待,直到该操作在服务器上完成,这可以防止按顺序运行多个操作时发生冲突。
配置使用以下操作符的简单查询以使用
$match而不是$expr,从而允许它们使用索引:$eq$in$and$or$gt$gte$lt$lte
版本 5.2.0
Django MongoDB 后端 v5.2.0 是首次正式发布(GA)版本。要学习有关 GA 功能的更多信息,请参阅Django MongoDB 后端现已普遍可用博客文章。
版本 5.2.0beta 3
警告
重大更改
Django MongoDB后端 v5.2.0beta 3发布引入了以下破坏性变更 (breaking change):
删除对非字符串字段的模式匹配查找的支持。以前,这些查找使用
$toString操作符转换其输入。这会导致性能问题,因为MongoDB在运行查询时无法使用索引。
版本 5.2.0beta 2
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
在表单和模型验证中将
django.db.models.SmallIntegerField和django.db.models.PositiveSmallIntegerField值限制为 32 位。删除对数据库缓存的支持。这可以防止破坏数据库的攻击者使用 pickle 编码的缓存值在应用程序服务器上运行任意命令。
Django MongoDB后端 v5.2.0beta 2发布包括以下功能、改进和修复:
添加对MongoDB Search 查询的支持。要学习更多,请参阅运行 MongoDB Search 查询指南。
添加了对
EmbeddedModelArrayField值的子查询支持。要学习;了解更多信息,请参阅《指定查询》指南中的“查询嵌入式模型数组值”。将
options参数添加到django_mongodb_backend.utils.parse_uri()方法。添加对数据库事务的支持。要学习;了解更多信息,请参阅 事务和会话指南。
新增
PolymorphicEmbeddedModelField和PolymorphicEmbeddedModelArrayField字段,用于存储可属于多个模型类的模型实例或模型实例列表。要学习;了解更多信息,请参阅创建模型指南中的存储多态嵌入式模型数据。添加 GeoDjango支持。要学习;了解更多信息,请参阅《地理空间数据建模》指南。
更新
QuerySet.explain()以返回可解析为JSON 的字符串。修复了
IntegerField和PositiveBigIntegerField字段的唯一约束生成问题,该字段错误地允许大于 32 位的重复值。您必须重新创建现有的唯一约束才能使用$type: long而不是int。将以下字段作为
bson.int64.Int64值发送到MongoDB ,这修复了对小于 32 位的值的唯一约束:IntegerFieldBigIntegerFieldPositiveIntegerFieldPositiveBigIntegerFieldDurationField
通过删除服务器端分块的下限来提高
QuerySet性能。通过将一些简单条件从
$match阶段推送到$lookup阶段,提高使用$lookup聚合阶段的连接操作的性能。
版本 5.2.0beta 1
Django MongoDB后端 v5.2.0beta 1发布包括以下功能、改进和修复:
添加用于存储模型实例列表的
EmbeddedModelArrayField字段。要学习;了解更多信息,请参阅创建模型指南中的存储嵌入式模型数组数据。修复了使用数据库转换器加载具有 null
ArrayField值和base_field的模型时发生的崩溃。
版本 5.2.0beta 0
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
将支持的最低PyMongo版本从 4.6 增加到 4.7。
删除
django_mongodb_backend.utils.parse_uri()的conn_max_age参数。Django MongoDB后端现在默认使用持久连接。
Django MongoDB后端 v5.2.0beta 0发布包括以下功能、改进和修复:
5.1 中的新增功能
本部分列出了以下补丁版本中引入的更改:
版本 5.1.0beta 4
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
删除对数据库缓存的支持。这可以防止破坏数据库的攻击者使用 pickle 编码的缓存值在应用程序服务器上运行任意命令。
Django MongoDB后端 v5.1.0beta 4发布包括以下功能、改进和修复:
修复了加载具有 null
ArrayField值的模型以及base_field使用数据库转换器时发生的崩溃。通过删除服务器端分块的下限来提高
QuerySet性能。
版本 5.1.0beta 3
Django MongoDB后端 v5.1.0beta 3发布包括以下功能、改进和修复:
添加对字段自定义查找和转换的支持
EmbeddedModelField修复使用
Trunc数据库函数的tzinfo参数的查询结果新增对
QuerySet.dates()和QuerySet.datetimes()方法的支持修复了使用数据库转换器的嵌入式模型字段加载
QuerySet结果的问题
版本 5.1.0beta 2
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
将
ArrayField的size参数重命名为max_size。size参数现在用于实施固定长度数组。
Django MongoDB后端 v5.1.0beta 2发布包括以下功能、改进和修复:
添加对数据库缓存的支持。此支持后来在 v5.1.4 中删除。
修复当文档键顺序与模型字段顺序不匹配时
QuerySet.raw_aggregate()字段初始化的问题。
版本 5.1.0beta 1
警告
重大更改
此版本发布了以下破坏性变更 (breaking change):
ObjectIdAutoField不再接受整数值
Django MongoDB后端 v5.1.0beta 1发布包括以下功能、改进和修复:
新增对保存嵌套嵌入式模型表单的支持
修复持久数据库连接
添加对异步操作的支持
将
db_name参数添加到django_mongodb_backend.utils.parse_uri()方法添加
django_mongodb_backend.routers.MongoRouter路由器,以确保 Django MongoDB 后端不会为嵌入式模型创建集合,并且dumpdata命令不包含嵌入式模型
版本 5.1.0beta 0
Django MongoDB后端 v5.1.0beta 0 是初始公开预览发布。要学习有关公共预览功能的更多信息,请参阅官方 Django MongoDB 后端现已推出公共预览版博客文章。