当前位置: 首页 > article >正文

mongodb 导入导出索引--查询慢问题

目录

查询自定义索引

删除所有自定义索引(慎用):

根据第一步查询插入索引:

根据步骤一的索引,删除索引


以下操作都是在admin数据库下执行


查询自定义索引

db.runCommand({listDatabases: 1})["databases"].forEach(
    function(databaseinfo) {
        if (databaseinfo['name'] == 'config' || databaseinfo['name'] == 'admin'){
            return
        }
        db.getSiblingDB(databaseinfo['name']).getCollectionNames().forEach(
            function(collname) {
 
                db.getSiblingDB(databaseinfo['name'])[collname].getIndexes().forEach(
                    function(indexinfo) {
                        if(indexinfo['name'] == '_id_'){
                            return
                        }else{
                            printjson({"dbname": databaseinfo['name'], "collname": collname, "index": indexinfo['key']})
                        }
                    }
                )
                 
            }
        )
    }
)


 
返回样例
{
    "dbname" : "sa_show_account",
    "collname" : "OperationLog",
    "index" : {
        "account" : 1,
        "time" : 1
    }
}


删除所有自定义索引(慎用):

db.runCommand({listDatabases: 1})["databases"].forEach(
    function(databaseinfo) {
        if (databaseinfo['name'] == 'config' || databaseinfo['name'] == 'admin'){
            return
        }
        db.getSiblingDB(databaseinfo['name']).getCollectionNames().forEach(
            function(collname) {
 
                db.getSiblingDB(databaseinfo['name'])[collname].getIndexes().forEach(
                    function(indexinfo) {
                        if(indexinfo['name'] == '_id_'){
                            return
                        }else{
                            printjson({"dbname": databaseinfo['name'], "collname": collname, "index": indexinfo['key']})
                            db.getSiblingDB(databaseinfo['name']).getCollection(collname).dropIndex(indexinfo['name'])
                        }
                    }
                )
                 
            }
        )
    }
)
 


根据第一步查询插入索引:
 

[{
    "dbname" : "dc_config_server",
    "collname" : "mongo_hit_sensitive_words",
    "index" : {
        "account_id" : 1
    }
}
{
    "dbname" : "popaccessserver",
    "collname" : "TenantConfigRecord",
    "index" : {
        "tenant_id" : 1
    }
}
{
    "dbname" : "sa_show_account",
    "collname" : "OperationLog",
    "index" : {
        "account" : 1,
        "time" : 1
    }
}
].forEach(
    function(indexinfo) {
        db.getSiblingDB(indexinfo['dbname']).getCollection(indexinfo['collname']).createIndex(indexinfo['index'])
    }
)

根据步骤一的索引,删除索引

[
    {
        "dbname" : "dc_config_server",
        "collname" : "mongo_hit_sensitive_words",
        "index" : {
            "account_id" : 1
        }
    },
    {
        "dbname" : "popaccessserver",
        "collname" : "TenantConfigRecord",
        "index" : {
            "tenant_id" : 1
        }
    },
    {
        "dbname" : "sa_show_account",
        "collname" : "OperationLog",
        "index" : {
            "account" : 1,
            "time" : 1
        }
    }
].forEach(
    function(indexinfo) {
        // Convert the index object to a string representation of the index name
        var indexName = Object.keys(indexinfo['index']).map(function(key) {
            return key + "_" + indexinfo['index'][key];
        }).join("_");

        // Drop the index using the constructed index name
        db.getSiblingDB(indexinfo['dbname']).getCollection(indexinfo['collname']).dropIndex(indexName);
    }
);


http://www.kler.cn/news/367353.html

相关文章:

  • vue面试题+wx-open-launch-app开放标签唤醒app方法
  • API接口开放与安全管控 - 原理与实践
  • 点云处理中的多项式重构、平滑与法线估计
  • JavaScript 第26章:Angular 基础
  • 10.22.2024刷华为OD C题型(三)--for循环例子
  • C++游戏开发
  • 4404 - 提高:二分与三分:曲线(三分)
  • 企业数据高效集成案例:钉钉到MySQL的数据同步
  • C语言二刷指针篇
  • 安装 Pycharm-Community
  • 【数据结构】贪心算法:决策的艺术
  • 厨艺交流平台:Spring Boot技术实践案例
  • springboot061基于B2B平台的医疗病历交互系统(论文+源码)_kaic
  • 基于SSM+微信小程序的社区垃圾回收管理系统(垃圾1)
  • 轻松构建高效 API:FastAPI 的主要特点与实战应用20241027
  • JDK、JRE、JVM之间的关系
  • sudo chroot raw-rootfs
  • git 工具 gitk tig
  • 提升数据处理效率:TDengine S3 的最佳实践与应用
  • AGI 之 【Dify】 之 Dify 在 Windows 端本地部署调用 Ollama 本地下载的大模型,实现 API 形式进行聊天对话
  • 【数据结构】宜宾大学-计院-实验五
  • 《车辆损毁数据评估方案全指南》
  • OTP一次性密码、多因子认证笔记
  • Java Web项目实战:从零基础到项目开发全流程
  • 力扣10.26
  • 标题:自动化运维:现代IT运维的革新力量