Mongorestore: createIndex error: Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed
Mongorestore: createIndex error: Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed
当 运行 mongorestore
命令使用大型 MongoDB 数据库时,我收到以下错误。
完成备份的机器:
db version v4.2.0
git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1804
distarch: x86_64
target_arch: x86_64
本地机器版本(我执行的地方mongorestore
)
db version v4.0.10
git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
allocator: system
modules: none
build environment:
distarch: x86_64
target_arch: x86_64
失败:prod.DeviceState:为 prod.DeviceState 创建索引时出错:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串。
对解决这个问题有什么帮助吗?
谢谢
对于将来会来这里的人来说,问题是,我在本地使用 MongoDB 4.0,服务器在 4.2:
从 4.2 版开始,mongodump 对元数据文件使用扩展 JSON v2.0(规范)格式。要解析这些文件以进行还原,请使用支持 Extended JSON v2.0(Canonical 或 Relaxed 模式)格式的 mongorestore 4.2+ 版。
有关详细信息,请参阅有关此的 "Metadata Format" 部分:[docs.mongodb.com/manual/reference/program/mongodump][1]
来源:https://dba.stackexchange.com/questions/250312/failed-to-restored-indexes-using-mongorestore-mongodb
从 4.2 版开始,mongodump 对元数据文件使用扩展 JSON v2.0(规范)格式。要解析这些文件以进行还原,请使用支持扩展 JSON v2.0(规范或宽松模式)格式的 mongorestore 4.2+ 版。
Tip
If general, use corresponding versions of mongodump and mongorestore.
That is, to restore data files created with a specific version of
mongodump, use the corresponding version of mongorestore.
https://docs.mongodb.com/manual/reference/program/mongodump/#metadata-format
因此,您需要使用 v4.2.0
执行 mongorestore
或者,试试这个(保留 MongoDB 备份)
- 停止 Mongod v4.2.0
- 运行 Mongod v4.0.10(如果失败,继续下一步)
- mongodump 数据库 v4.0.10
其他技巧:
mongodump uses Extended JSON v2.0 (Canonical) format for the metadata files
- 启动mongod v4.0.10
- 创建所有集合+索引
- mongodump v4.0.10
- 将
metadata files .json
转储 v4.2.0 替换为 v4.0.10
- 带有 v4.0.10 的 mongoestore 转储
当 运行 mongorestore
命令使用大型 MongoDB 数据库时,我收到以下错误。
完成备份的机器:
db version v4.2.0
git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1804
distarch: x86_64
target_arch: x86_64
本地机器版本(我执行的地方mongorestore
)
db version v4.0.10
git version: c389e7f69f637f7a1ac3cc9fae843b635f20b766
allocator: system
modules: none
build environment:
distarch: x86_64
target_arch: x86_64
失败:prod.DeviceState:为 prod.DeviceState 创建索引时出错:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串。
对解决这个问题有什么帮助吗?
谢谢
对于将来会来这里的人来说,问题是,我在本地使用 MongoDB 4.0,服务器在 4.2:
从 4.2 版开始,mongodump 对元数据文件使用扩展 JSON v2.0(规范)格式。要解析这些文件以进行还原,请使用支持 Extended JSON v2.0(Canonical 或 Relaxed 模式)格式的 mongorestore 4.2+ 版。 有关详细信息,请参阅有关此的 "Metadata Format" 部分:[docs.mongodb.com/manual/reference/program/mongodump][1]
来源:https://dba.stackexchange.com/questions/250312/failed-to-restored-indexes-using-mongorestore-mongodb
从 4.2 版开始,mongodump 对元数据文件使用扩展 JSON v2.0(规范)格式。要解析这些文件以进行还原,请使用支持扩展 JSON v2.0(规范或宽松模式)格式的 mongorestore 4.2+ 版。
Tip
If general, use corresponding versions of mongodump and mongorestore. That is, to restore data files created with a specific version of mongodump, use the corresponding version of mongorestore.
https://docs.mongodb.com/manual/reference/program/mongodump/#metadata-format
因此,您需要使用 v4.2.0
或者,试试这个(保留 MongoDB 备份)
- 停止 Mongod v4.2.0
- 运行 Mongod v4.0.10(如果失败,继续下一步)
- mongodump 数据库 v4.0.10
其他技巧:
mongodump uses Extended JSON v2.0 (Canonical) format for the metadata files
- 启动mongod v4.0.10
- 创建所有集合+索引
- mongodump v4.0.10
- 将
metadata files .json
转储 v4.2.0 替换为 v4.0.10 - 带有 v4.0.10 的 mongoestore 转储