如何将一个mongodb中集合的索引 添加到另一个mongodb中集合中
2023-09-11 14:20:19 时间
一、前言
项目中遇到迁移mongodb数据库的需求,迁移中集合数据迁移成功,但是索引没有迁移过来(除了默认索引),然后对索引做迁移工作,把对mongodb数据库索引的迁移步骤记录下来,以便以后可以用到。
二、mongodb索引 迁移
步骤:
①在原mongodb中查询出所有要迁移集合的索引
②把①中索引添加到目标mongodb数据库中
步骤一:查看要迁移集合的索引
方法1:可以单个集合查看,然后使用索引创建方法在 目标mongodb数据库中 一个一个添加,此方法比较繁琐,不推荐。
方法2:查看原mongodb数据库中的所有索引,编写脚本打印出对应索引的添加语句,复制粘贴到 目标mongodb数据库中去执行即可(推荐
)
下面介绍方法2的执行过程:
1.编写脚本,导出索引执行记录
//导出索引的脚本 兼容了唯一索引,和超时配置
var collectionList = db.getCollectionNames();
for(var index in collectionList){
var collection = collectionList[index];
var cur = db.getCollection(collection).getIndexes();
if(cur.length == 1){
continue;
}
for(var index1 in cur){
var next = cur[index1];
if(next["key"]["_id"] == '1'){
continue;
}
print(
"try{ db.getCollection(\""+collection+"\").ensureIndex("+JSON.stringify(next.key)+",{background:1, unique:" + (next.unique || false) + "" + (next.expireAfterSeconds > 0 ? ", expireAfterSeconds :" + next.expireAfterSeconds : "") + " })}catch(e){print(e)}")}}
把上面的导出索引脚本放到 原mongodb数据库中去运行,运行结果如下:
2.复制导出索引执行记录,去目标mongodb数据库中执行
复制上面的打印输出内容,粘贴到 目标mongodb数据库中去执行:
执行成功:
相关文章
- mongodb 集合新增字段、删除字段、修改字段
- MongoDB集群之分片
- Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建
- logstash-out-mongodb实现elasticsearch到Mongodb的数据同步
- mongodb基础整理篇————索引[四]
- mongodb基础整理篇————索引[四]
- [MongoDB] Mongo 表字段添加索引, 查看索引, 删除索引
- 〖Python 数据库开发实战 - MongoDB篇⑤〗- 安装和使用MongoDB客户端软件
- MongoDB凭什么跻身数据库排行前五?
- SpringBoot-MongoDB 索引冲突分析及解决
- MongoDB查询、索引和聚合
- Mongodb的学习整理(下)
- 【MongoDB】The Access control of mongodb
- 【MongoDB】Serveral common command of MongoDb
- MongoDB(八)Mongodb——GridFS存储
- mongodb 3.2配置内存缓存大小为MB/MongoDB 3.x内存限制配置
- mongodb压缩——snappy、zlib块压缩,btree索引前缀压缩
- mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent
- MongoDB架构——记得结合前面的文章看,里面的图画的很好
- 在 MongoDB 中使用覆盖索引查询
- MySQL Cluster 与 MongoDB 复制群集分片设计及原理
- mongodb启动很慢
- mongodb添加验证用户 删除用户
- MongoDB 3.2复制集单节点部署(四)
- Mongodb数据库初识
- mongodb update