MongoDB提取指定的切片集

**作者:刘大

大家可能都知道如何将MongoDB数据库的数据进行整体的迁移,不清楚也没关系,可以在iServer的联机帮助的“开始-iServer配置与管理-iServer缓存机制-使用分布式切图服务-切片集的分发”就会有详细的说明,里面还介绍了将切片集导出SMTiles 格式文件,便于移动端离线地图的使用,这里就不重复述说了。不过,在实际的项目开发上,我们可能只是想要将数据库内的某一张地图即一个切片集拷贝分发到其他的MongoDB服务器上,这时我们就需要使用MongoDB命令来复制相应的表,或者进行数据的导入导出。
###一.相关概念
初次接触mongodb数据库的时候,对于mongodb的实例,数据库,集合,文档等概念可能不太理解,下面我们就用一张表格来展示一下:
这里写图片描述
下面以iserver所切的mongodb切片的实例来看看数据库的存储结构
这里写图片描述
不难看出图表中的“1”是实例;“2”是数据库;“3”是集合或者数据库表;“4”是文档即一条记录。
上面的图,我们也可以知道iserver所切的mongodb切片是有meatadatas,images,tiles这3个表组成,"_"后面的一串数字是与meatadatas表的记录的tilesetName相对应的,
了解相关的概念,我们就开始着手数据提取
###二.复制表(cloneCollection)
db.cloneCollection是指复制远程数据库的数据表到本地,db则是指当前数据库,在使用复制表命令,我们需要注意:
1.本地服务器和远程服务器需能够连通;
2.在复制之前,需要在本地数据库上建立与被复制表所在的数据库名字一样的数据库;
首先,我们来看看cloneCollection有哪些参数:
写法:db.cloneCollection(from,collection,filter)
这里写图片描述
接下来,我们就以实际的操作来展示命令的使用吧!
这里写图片描述
从上图看,我们已经在本地服务器90里新建了一个和89同名的smtiles数据库,首先我们在mongodb的bin目录下打开cmd,如图:
这里写图片描述
最后,我们一样的,把“1116742863”对应的images和tiles表复制即可,
这里写图片描述
这样,我们就提取了长春市区地图的MongoDB切片,iServer连接数据库,进行发布缓存了。

###三.导入导出
复制表的命令,能够快速将数据转移到本地数据库,但是它有一定的局限性:
1.没办法从本地复制本地;
2.数据库必须同名
所以,我们接下来介绍下导入导出命令。可以解决这两个问题
导出导入工具存放在mongodb的bin目录下
想要查看这两个操作都有哪些参数,可通过输入mongoexport.exe/mongoimport.exe --help查看
####3.1导出(mongoexport)
MongoDB导出工具可以把一个collection导出成json格式,csv格式或tsv格式的文件。先来看看有哪些主要的参数
这里写图片描述
一切文字的说明都抵不过实际的操作,我们就来操作一下
这里写图片描述
这样我们就已经将id为“-1137121821”的切片集导入到本地实例的bin路径下了
这里提醒大家一下,在windows里进行-q 查询条件的设置是,应注意双引号以及单引号的使用,大括号外必须使用**“”**。
####3.2导入(mongoimport)
上面我们已经导出了我们所需要的数据,现在就开始将数据导入需要发布切片服务的MongoDB里吧
导入数据的参数和导出相差不多(导入数据的时候,不使用-o指定路径 直接写路径地址即可),导入数据支持json和csv格式,不进行设置,默认为json格式。
同样,直接上例子
这里写图片描述
现在我就完成了指定切片集导入了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值