.dup文件导入mysql_数据库服务运维(Mongo DB导入导出)

释放双眼,带上耳机,听听看~!

1.导出

mongoexport 用于将 MongoDB 数据库中的数据导出为 JSON 或者 CSV 格式

我们以上一节基本操作中的 users 集合为例,首先,我们向其中插入几条数据:

> db.users.insertMany([{name: “Aiden”, age: 30, email: “luojin@simplecloud.cn”, addr: [“CD”, “SH”]}, {name: “Tom”, age: 20, email: “tom@simplecloud.cn”, addr: [“BJ”, “SH”]}, {name: “Jim”, age: 20, email: “jim@simplecloud.cn”, addr: [“BJ”, “SH”]}, {name: “Cat”, age: 10, addr: [“SZ”, “CD”]}])

c2c24074f0eac98f3e69fff65abae55d.png

我们来查看集合中的文档:

> db.users.find()

输出结果如下:

ca53cbfdadeb21780778f1a6e3028632.png

可以看到已经将数据插入进去了。

下面我们来使用 mongoexport 命令导出 users 集合中的数据,保存为 users.json :

$ mongoexport –db shiyanlou001 –collection users –out users.json

–db 选项是指定数据库的名称,我们这里为 wanneng001

–collection 是指定集合的名称,我们这里为 users

–out 是指定导出的文件的文件名,我们这里为 users.json

下面我们介绍 mongoexport 中的一些常用的命令行参数:

–db 指定数据库名。 –collection 指定集合名。

–type 指定文件类型为 csv 或者 json。默认为 json 。

–out 指定导出的文件名。如果没有指定,将输出到 stdout 。

–pretty 对于 json 类型而言,将输出一个更直观清晰的格式。

–limit 指定导出的文档数目。

–sort 指定导出结果的排序。比如:

–sort ‘{“age”:1}’ 表示对 age 字段的值升序排列,如果想降序排列,可以把冒号后面改为 -1 。

–query 提供一个 json 文档作为匹配条件,限制返回的结果集。

2.导入

与 mongoexport 对应的即为 mongoimport。用于导入由 mongoexport 创建的 json 和 csv 的内容。

因此,对于 mongoimport 来说,常见的参数与 mongoexport 类似。我们这里是从文件导入到 MongDB 的数据库中,而 mongoimport 的 –db 和 –collection 指的是导入的地方,所以会用到两个 mongoexport 中不存在的参数:

–file 指定将要导入的文件的文件名。未指定时,从标准输入导入。

–drop 在导入时,指定的集合存在时,使用该选项,将删除原来的内容

例如,我们导入之前导入的 users.json 文件:

ac9194a97846b8ae79d39d8921bb5289.png

3.备份

mongodump 能够把导出的数据库中的内容保存为一个二进制文件。不同于导入导出,这里针对的是数据库。你也可以通过配置项选择集合进行备份。

mongodump 仅备份数据库中的文档,不包含索引( MongoDB 中默认索引为 _id )数据,并且本地数据库 local 不会被备份。 我们可以直接使用 mongodump 进行备份操作:

mngodump

查看 dump 的目录结构:

3358f899b77c585d1b5fd6a6a48f4ae0.png

如上所示,并未备份 local 数据库(即本地数据库)中的内容,默认的 IP 是 localhost 和 PORT是 27017,默认输出为当前目录下的 dump 目录 。

下面简单列举一些常见的参数:

--host <:port>, -h <:port>默认值: localhost:27017

--port 默认值: 27017

--username , -u 指定用户名,需要与 --password and --authenticationDatabase 配置项一起使用

--db , -d 指定数据库进行备份。未指定时会备份除本地数据库的所有数据库。

--collection , -c 指定集合进行备份,未指定针对指定数据库中的所有集合

--out , -o 指定保存目录。默认值为 dump

--archive 将备份内容写入到一个存档文件中,该选项可以用来代替 --out 选项,但不能在 --out 选项中使用 --archive 选项

4.恢复

mongorestore 可以从 mongodump 创建的备份中读取内容。对于服务器中存在的内容,mongorestore 不会覆盖原有的内容,如果数据库中集合的文档与要恢复的的文档有相同的值,原有文档不会被覆盖。

 该参数是mongorestore 的最后一个参数,指定要从恢复的备份内容的位置

--archive  从归档文件中恢复

--dir 与 功能相同,两者不能同时使用

如下示例,恢复备份中的内容:

$ mongorestore –dir dump

输出结果如下:

2017-11-27T13:09:50.431+0800 preparing collections to restore from

2017-11-27T13:09:50.639+0800 reading metadata for wanneng001.users from dump/wanneng001/users.metadata.json

2017-11-27T13:09:50.746+0800 restoring wanneng001.users from dump/shiyanlou001/users.bson

2017-11-27T13:09:50.916+0800 error: multiple errors in bulk operation:

E11000 duplicate key error collection: wanneng001.users index: id dup key: { : ObjectId(‘5a17e091bb4310a50c2010f4’) }

E11000 duplicate key error collection: wanneng001.users index: id dup key: { : ObjectId(‘5a17e091bb4310a50c2010f5’) }

E11000 duplicate key error collection: wanneng001.users index: id dup key: { : ObjectId(‘5a17e091bb4310a50c2010f6’) }

E11000 duplicate key error collection: wanneng001.users index: id dup key: { : ObjectId(‘5a17e091bb4310a50c2010f3’) }

2017-11-27T13:09:50.917+0800 no indexes to restore

2017-11-27T13:09:50.917+0800 finished restoring wanneng001.users (4 documents)

2017-11-27T13:09:50.917+0800 done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
[ 4.858794] uwe5621_bt_tty_init [ 4.862131] mtty_probe unisoc soc, continue [ 4.868449] mtty_probe init device addr: 0x000000007db4bee8 [ 4.868608] rfkill_bluetooth_init [ 4.871951] rfkill_bluetooth_init end [ 4.872048] marlin_sdio_init [ 4.873682] mtty_probe unisoc soc, continue [ 4.873724] sysfs: cannot create duplicate filename '/devices/virt[ 4.873829] CPU: 1 PID: 121 Comm: init Not tainted 4.19.193 #34 [ 4.873842] Hardware name: ROC-RK3566-PC HDMI(Android) (DT) [ 4.873849] Call trace: [ 4.873868] dump_backtrace+0x0/0x178 [ 4.873876] show_stack+0x14/0x20 [ 4.873886] dump_stack+0x94/0xb4 [ 4.873895] sysfs_warn_dup+0x64/0x80 [ 4.873902] sysfs_create_dir_ns+0xdc/0xf8 [ 4.873910] kobject_add_internal+0xa0/0x288 [ 4.873916] kobject_add+0x98/0x100 [ 4.873928] device_add+0xec/0x698 [ 4.873934] device_register+0x1c/0x28 [ 4.873945] tty_register_device_attr+0xe4/0x208 [ 4.873951] tty_register_driver+0x138/0x248 [ 4.873970] mtty_probe+0x144/0x33u0 [sprdbt_tty] [ 4.873978] platform_drv_probe+0x50/0xa8 [ a 4.873984] really_probe+0xl228/0x2a0 [ 4.873991] driver_probe_device+0x58/0x100 [ 4.873996] device_driver_attach+0x6c/0x78 [ 4.874001] __driver_attach+0xb0/0xf0 [ 4.874009] bus_for_each_dev+0x68/0xc8 [ 4.874014] driver_attach+0x20/0x28 [ 4.874019] bus_add_driver+0xf8/0x1f0 [ 4.874025] driver_register+0x60/0x110 [ 4.874031] __platform_driver_register+0x40/0x48 [ 4.874044] uwe5621_bt_tty_init+0x44/0x1000 [sprdbt_tty] [ 4.874052] do_one_initcall+0x48/0x240 [ 4.874061] do_init_module+0x5c/0x1c8 [ 4.874069] load_module+0x18f8/0x1f68 [ 4.874074] __se_sys_finit_module+0xc0/0xd8 [ 4.874079] __arm64_sys_finit_module+0x14/0x20 [ 4.874087] el0_svc_common.constprop.0+0x64/0x178 [ 4.874092] el0_svc_handler+0x28/0x78 [ 4.874097] el0_svc+0x8/0xc [ 4.874179] kobject_add_internal failed for ttyBT0 with -EEXIST/, don't try to register things twith the same name in the same directory. [ 4.874225] list_del corruption, ffffffc079941ea8->next is LIST_POISON1 (dead000000000100) [ 4.874270] ------------[ cut here ]------------
最新发布
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值