近期在搭建开发环境时需要用到部分生产数据用于测试,单独作一篇文章来记录相关命令。
在 Ubuntu 22.04 上,mongo-tools 包可能不可用。可以直接安装 MongoDB 客户端工具,它们包含了 mongoexport 工具。以下是安装步骤:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.listsudo apt updatesudo apt install -y mongodb-org-toolsmongoexport --uri="mongodb://localhost:27017" --db=mydatabase --collection=mycollection --out=output.jsonmongodump --uri="mongodb://localhost:27017" --db=mydatabase --out=outputmongodump --uri="mongodb://localhost:27017" --out=outputmongoimport --uri="mongodb://localhost:27017" --db=mydatabase --collection=mycollection --file=output.jsonmongorestore --uri="mongodb://localhost:27017" --db=mydatabase --drop output/mydatabasemongorestore --uri="mongodb://localhost:27017" --drop outputE11000 duplicate key error collection
在导入数据时,如果数据库中已经存在相同的 key,可以使用 --drop 参数来删除已有数据。
在导入数据时,如果数据库已经存在,可以使用 --drop 参数来删除已有数据库。在导出数据时,可以使用 --query 参数来指定导出条件。
connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.
这是因为 MongoDB 4.0 之后默认使用了 SCRAM-SHA-1 认证方式,而之前的版本使用了 MONGODB-CR 认证方式。可以在连接字符串中指定认证方式:
mongoimport --uri="mongodb://localhost:27017" --authenticationDatabase=admin --drop output