mongoexport错误:失败:无法解析+无法识别的字段快照

时间:2019-06-18 20:56:03

标签: mongodb database-migration data-migration mongoexport

目标:将我的本地mongodb数据迁移到mongobd Atlas集群。

尝试:
1.将本地数据导出为json。
2.将json导入集群。

操作系统:Linuxmint 19.1 Cinnamon
mongo-版本 MongoDB Shell版本v4.0.10
mongod --version 数据库版本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'.

出什么问题了,我应该怎么做才能解决?有没有更好的方法来迁移数据?

2 个答案:

答案 0 :(得分:16)

这通常是由于mongodump版本与mongoDB服务器版本不同所致。

但是添加--forceTableScan开关可以解决问题

mongodump --forceTableScan -d database_name

答案 1 :(得分:0)

所以我卸载了所有mongodb并从他们的网站上下载了服务器,shell和工具deb,并确保它们都是Ubuntu 18.04的4.0.10。尽管突触中似乎包含了相同的版本,但我还是决定直接安装deb,以防万一,就像我以前进行命令行安装一样,也从Software Manager中进行了安装,最终得到了不同的版本。使用正确的版本,我终于可以根据需要输出json文件。我还将尝试@sachav提到的mongodump和mongorestore方法。