参考 > 发行说明 > MongoDB 2.4发行说明 > MongoDB 2.4中的兼容性和索引类型更改
在2.4中,MongoDB包括两个与索引相关的新功能,升级到版本2.4的用户必须考虑这些索引,特别是在可能的降级路径方面。有关降级的更多信息,请参阅将 MongoDB从2.4降级到早期版本。
在2.4中,MongoDB添加了两个新的索引类型:2dsphere
和
text
。这些索引类型在2.2中不存在,并且对于每个数据库,创建一个2dsphere
或text
索引,将升级数据文件版本并使该数据库与2.2不兼容。
如果您打算降级,你应该总是丢弃所有2dsphere
,并text
移动到2.2之前的索引。
您可以使用降级过程降级这些数据库并在需要时运行2.2,但是这将对repairDatabase
所有受影响的数据库运行完整的数据库修复(与一样)。
在MongoDB 2.2和更早版本中,您可以指定不存在的无效索引类型。在这些情况下,MongoDB将创建一个升序(例如1
)索引。无效索引包括由字符串指定的索引类型(不引用现有索引类型)以及除1
和以外的所有数字-1
。[1]
在2.4中,创建任何无效索引都将导致错误。此外,如果其包含的数据库具有任何无效的索引类型,则不能在集合上创建2dsphere
或text
索引。
[1]
例
如果您尝试在MongoDB 2.4中添加无效索引,如下所示:
MongoDB将返回以下错误文档:
[1] | (1,2)在2.4中,指定类型的索引
"1" 或"-1" (字符串"1" 和"-1" )将继续存在,尽管在启动时的警告。但是,副本集中的
辅助节点无法从具有"1" 或"-1" 索引的主节点完成初始同步。避免使用无效类型的所有索引。 |