On this page
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.
您可以使用downgrade procedure降级这些数据库并在需要时运行 2.2,但是它将为所有受影响的数据库运行完整的数据库修复(与repairDatabase一样)。
索引类型验证
在 MongoDB 2.2 和更早版本中,您可以指定不存在的无效索引类型。在这种情况下,MongoDB 将创建一个升序(例如1
)索引。无效索引包括由字符串指定的索引类型(不引用现有索引类型)以及1
和-1
以外的所有数字。 [1]
在 2.4 中,创建任何无效索引将导致错误。此外,如果其包含的数据库具有任何无效的索引类型,则不能在集合上创建2dsphere
或text
索引。 [1]
Example
如果您尝试在 MongoDB 2.4 中添加无效索引,如下所示:
db.coll.ensureIndex( { field: "1" } )
MongoDB 将返回以下错误文档:
{
"err" : "Unknown index plugin '1' in index { field: \"1\" }"
"code": 16734,
"n": <number>,
"connectionId": <number>,
"ok": 1
}