MongoDB 中的兼容性和索引类型更改 2.4

在本页面

在 2.4 MongoDB 中包含两个与升级到 version 2.4 的用户必须考虑的索引相关的新 features,特别是关于可能的降级 paths。有关降级的更多信息,请参阅将 MongoDB 从 2.4 降级到以前的版本

新索引类型

在 2.4 MongoDB 中添加了两种新的索引类型:2dspheretext。 2.2 中不存在这些索引类型,并且对于每个数据库,_创建2dspheretext索引将升级 data-file version 并使该数据库与 2.2 不兼容。

如果您打算降级,则应始终删除所有2dspheretext索引,然后再移至 2.2.

如果需要,您可以使用降级程序降级这些数据库并 run 2.2,但是这将为所有受影响的数据库运行完整的数据库修复(与repairDatabase一样)。

索引类型验证

在 MongoDB 2.2 及更早版本中,您可以指定不存在的无效索引类型。在这些情况下,MongoDB 将创建一个升序(e.g .1)索引。无效索引包括由 strings 指定的不引用现有索引类型的索引类型,以及1-1以外的所有 numbers。 [1]

在 2.4 中,_创建任何无效索引都将导致错误。此外,如果集合中包含的数据库包含任何无效的索引类型,则无法在集合上创建2dspheretext索引。 [1]

如果您尝试在 MongoDB 2.4 中添加无效索引,如下所示:

{
  "err" : "Unknown index plugin '1' in index { field: \"1\" }"
  "code": 16734,
  "n": <number>,
  "connectionId": <number>,
  "ok": 1
}
[1](12)在 2.4 中,指定"1""-1"(strings "1""-1")类型的索引将继续存在,尽管 start-up 上有警告。 但是,副本集中的次要无法从具有"1""-1"索引的主节点完成初始同步。避免使用无效类型的所有索引。