Ann*_*nie 7 data-migration database-migration mongodb mongoexport
目标:将我的本地 mongodb 数据迁移到 mongodb atlas 集群。
尝试:
1. 将本地数据导出为 json。
2.导入json到集群。
操作系统:Linuxmint 19.1 Cinnamon
mongo --version MongoDB shell version v4.0.10
mongod --version db version v3.6.3
我还有一个单独的数据库文件夹。
所以首先我开始
/home/me/mongodb/bin/mongod --dbpath=/home/me/mongodb-data
Run Code Online (Sandbox Code Playgroud)
然后我打开一个终端并输入
~/mongodb/bin $ mongoexport --db task-manager --collection users --out ~/Desktop/test.json
Run Code Online (Sandbox Code Playgroud)
我希望任务管理器数据库中的用户集合将打印为 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'.
Run Code Online (Sandbox Code Playgroud)
出了什么问题,我应该怎么做才能解决它?有没有更好的方法来迁移数据?
Ale*_*lig 26
这通常是由于 mongodump 与您的 mongoDB 服务器版本不同造成的。
但是加--forceTableScan
switch可以解决问题
mongodump --forceTableScan -d database_name
Run Code Online (Sandbox Code Playgroud)
Ann*_*nie -2
所以我卸载了所有 mongodb 并从他们的网站下载了服务器、shell 和工具 deb,并确保它们都是适用于 Ubuntu 18.04 的 4.0.10。虽然突触中似乎包含相同的版本,但为了以防万一,我决定直接安装 deb,因为我之前进行了命令行安装,并且还从软件管理器进行了安装,最终得到了不同的版本。版本正确后,我终于可以输出我想要的 json 文件了。我还会尝试 @sachav 提到的 mongodump 和 mongorestore 方法。
归档时间: |
|
查看次数: |
8642 次 |
最近记录: |