mongoexport error: Failed: Failed to parse + Unrecognized field 'snapshot
mongoexport error: Failed: Failed to parse + Unrecognized field 'snapshot
目标:将我的本地 mongodb 数据迁移到 mongobd atlas 集群。
尝试:
1.导出本地数据为json.
2. 将 json 导入集群。
OS:Linuxmint 19.1 肉桂
mongo --版本
MongoDB shell 版本 v4.0.10
mongod --版本
数据库版本 v3.6.3
我还有一个单独的数据库文件夹。
首先我开始
/home/me/mongodb/bin/mongod --dbpath=/home/me/mongodb-data
然后我打开一个终端并输入
~/mongodb/bin $ mongoexport --db task-manager --collection users --out ~/Desktop/test.json
我希望任务管理器数据库中的用户集合将作为 test.json 文件打印出来,但我收到错误消息:
2019-06-18T22:05:06.108+0200 connected to: localhost
2019-06-18T22:05:06.108+0200 Failed: Failed to parse: { find: "users", filter: {}, sort: {}, skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "task-manager" }. Unrecognized field 'snapshot'.
出了什么问题,我应该如何解决?有没有更好的迁移数据的方法?
所以我卸载了所有东西 mongodb 并从他们的网站下载了服务器、shell 和工具 deb 并确保它们都是 4.0.10 for Ubuntu 18.04。尽管突触中似乎包含相同的版本,但我还是决定直接安装 deb,以防万一,因为我之前进行了命令行安装,并且还从最终具有不同版本的软件管理器进行了安装。有了正确的版本,我终于可以输出我想要的 json 文件了。我也会尝试@sachav 提到的 mongodump 和 mongorestore 方法。
这通常是由于 mongodump 与您的 mongoDB 服务器版本不同所致。
但是加上--forceTableScan
开关可以解决问题
mongodump --forceTableScan -d database_name
这是由于在 mongo 4.0 中引入的 mongo 快照功能
如果 mongo 客户端低于 4.0 且数据库高于 4.0,您将面临此问题
您可以通过两个选项解决此问题:
- 使用 --forceTableScan
- 根据您的 OS 下载最新的 mongo client 并执行命令,您应该不会看到错误
注意:同样的事情发生在 mongodump
目标:将我的本地 mongodb 数据迁移到 mongobd atlas 集群。
尝试:
1.导出本地数据为json.
2. 将 json 导入集群。
OS:Linuxmint 19.1 肉桂
mongo --版本
MongoDB shell 版本 v4.0.10
mongod --版本
数据库版本 v3.6.3
我还有一个单独的数据库文件夹。
首先我开始
/home/me/mongodb/bin/mongod --dbpath=/home/me/mongodb-data
然后我打开一个终端并输入
~/mongodb/bin $ mongoexport --db task-manager --collection users --out ~/Desktop/test.json
我希望任务管理器数据库中的用户集合将作为 test.json 文件打印出来,但我收到错误消息:
2019-06-18T22:05:06.108+0200 connected to: localhost
2019-06-18T22:05:06.108+0200 Failed: Failed to parse: { find: "users", filter: {}, sort: {}, skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "task-manager" }. Unrecognized field 'snapshot'.
出了什么问题,我应该如何解决?有没有更好的迁移数据的方法?
所以我卸载了所有东西 mongodb 并从他们的网站下载了服务器、shell 和工具 deb 并确保它们都是 4.0.10 for Ubuntu 18.04。尽管突触中似乎包含相同的版本,但我还是决定直接安装 deb,以防万一,因为我之前进行了命令行安装,并且还从最终具有不同版本的软件管理器进行了安装。有了正确的版本,我终于可以输出我想要的 json 文件了。我也会尝试@sachav 提到的 mongodump 和 mongorestore 方法。
这通常是由于 mongodump 与您的 mongoDB 服务器版本不同所致。
但是加上--forceTableScan
开关可以解决问题
mongodump --forceTableScan -d database_name
这是由于在 mongo 4.0 中引入的 mongo 快照功能 如果 mongo 客户端低于 4.0 且数据库高于 4.0,您将面临此问题 您可以通过两个选项解决此问题:
- 使用 --forceTableScan
- 根据您的 OS 下载最新的 mongo client 并执行命令,您应该不会看到错误 注意:同样的事情发生在 mongodump