linux - Mongorestore:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串

标签 linux mongodb macos mongodump mongorestore

使用大型 MongoDB 数据库运行 mongorestore 命令时,我收到以下错误。

完成备份的机器:

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(规范)格式。要解析这些文件以进行恢复,请使用支持扩展 JSON v2.0(规范或宽松模式)格式的 mongorestore 版本 4.2+。 有关详细信息,请参阅“元数据格式”部分:[docs.mongodb.com/manual/reference/program/mongodump][1]

来源:https://dba.stackexchange.com/questions/250312/failed-to-restored-indexes-using-mongorestore-mongodb

关于linux - Mongorestore:createIndex 错误:v:2 索引键模式中的值不能是对象类型。只允许数字 > 0、数字 < 0 和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59632651/

相关文章:

macos - 产品设计错误 : SignData failed: CSSMERR_CSP_NO_USER_INTERACTION

macos - 如何在 Lion 的沙盒应用程序中发送分布式通知?

linux - Ubuntu 在 grep 中使用 -q 标志时出现 EPIPE 错误

c - Linux : Glib was not found

linux - 在 Linux 中可能位于同一行也可能不在同一行的两个模式之间搜索文本

python - 查询嵌入列表中的数组

objective-c - 如何获取机器的序列号

linux - 保护虚拟内存中的页面

java - initializeUnorderedBulkOperation 和 initializeOrderedBulkOperation 的确切区别和优点/缺点是什么?

mongodb - 存储与分离流相关的数据