目标:将我本地的mongodb数据迁移到mongobd atlas集群。
尝试:
操作系统: Linuxmint 19.1 Cinnamon
MongoDB --版本mongo shell版本v4.0.10
魔神--版本db版本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'.哪里出了问题,我应该怎么做才能修复它?有没有更好的迁移数据的方法?
发布于 2019-06-19 20:01:13
所以我卸载了所有mongodb,并从他们的网站上下载了服务器、shell和工具deb,并确保它们都是Ubuntu 18.04的4.0.10版本。虽然相同的版本似乎包含在synaptic中,但我决定直接安装deb,以防万一,就像我之前做的命令行安装一样,也是从Software Manager安装的,结果是有不同的版本。有了正确的版本,我终于可以输出我想要的json文件了。我也会尝试@sachav提到的mongodump和mongorestore方法。
发布于 2020-02-08 18:02:40
这通常是由于mongodump与您的mongoDB服务器的版本不同而导致的。
但是增加--forceTableScan交换机就可以解决这个问题
mongodump --forceTableScan -d database_name发布于 2021-10-01 12:09:37
这是由于mongo 4.0中引入的mongo快照功能,如果mongo客户端低于4.0,而db高于4.0,你可以通过两个选项来解决这个问题:
使用--forceTableScan
https://stackoverflow.com/questions/56656925
复制相似问题