`

mongodb使用小结-1

阅读更多

接触Mongodb其实也有一年多了,但是没有正经的总结过。。。

现将一些基础的常用的命令稍作整理。

 

上星期,遇到了意见很奇怪的事,一个在aws上运维的项目,客户突然打电话说,手机端打开信息一览很慢,甚至打不开,在dbServer执行top -c 命令,发现memory已经高达92%。。。cpu也是满负荷在工作。。。,查看了weblog,mongodb的log,在mongodb的日志里发现对一张集合做检索操作时特别慢,大概要花15秒到20秒。。。

 

之前对这个集合做过删除操作,但是删除也是一两个星期前的事了,为什么就偏偏那天变得缓慢?百思不得其解。。。

 

因为有两套环境,一套检证用的环境,还有一套就是商用环境,后来试着比较了这两张表索引,发现检证上的索引比商用的索引多了一个。。。于是瞎猫碰上死耗子居然把问题解决了,但是后来想想其实并不是因为多一个索引的问题。这个问题需要后续在仔细研究一下再讨论。今天先将一些基础整理一下。

 

--关于索引

1.查看数据库文档的索引

db.document_name.getIndexes();

2.删除指定索引

db.document_name.dropIndex({"index_1" : 1,"index_2" :1});

3.创建单索引

db.document_name.ensureIndex({"index": 1});

4.创建复合索引

 

db.document_name.ensureIndex({"index_1" : 1,"index_2" :1},{"unique":true},{"name":"index_1_1_index_2_2"},{"background":true});

关于background:true,如果在为已有数据的文档创建索引时,可以执行下面的命令,以使MongoDB在后台创建索引,这样的创建时就不会阻塞其他操作。但是相比而言,以阻塞方式创建索引,会使整个创建过程效率更高,但是在创建时MongoDB将无法接收其他的操作。

 

--关于检索

db.document_name.find({ $query: { column_1: "*******************" }, $orderby: { _id: -1 } })

db.document_name.find({"column_1":"*******************"}).sort({_id:-1})

 

--删除文档

db.document_name.drop();

 

--模糊查询

1.db.document_name.remove({name:{$regex:"aaa"}});--删除name的value中包含“aaa”这样的document

2.db.document_name.find({name:{$regex:"aaa",$options:"$i"}}); -忽略大小写,检索name的value中包含“aaa”这样的document

3.db.coll_push_info.find({"push_body.content":{$regex:"aaaa",$options:"$i"}});//嵌套字段的模糊查询

 

--排序

db.document_name.find({"name":"..........................."}).sort({test_id:1});

注:1为升序,-1为降序

 

--多值匹配

db.document_name.find({id:{$in:["888888888888","999999999999","7777777777777"]}});

 

--去重复

db.document_name.distinct("test_id");

 

 

 

 

mongodb的isodate就是UTC时间,中国时间=UTC+8

 

 

 

分享到:
评论

相关推荐

    MongoDB北京2014 - MongoDB性能扩展 - 唐建法

    **小结**:根据数据访问的方式合理设计数据模型,必要时可以采用数据冗余来提高读取性能。 #### 索引优化 **背景**:索引是提高查询性能的重要手段之一。合适的索引设计能够显著减少查询时间。 **案例**:电话簿...

    MongoDB 语法使用小结

    MongoDB 使用BSON(Binary JSON)格式存储数据,这种格式与JSON相似,但支持二进制数据,使得存储复杂数据类型如数组和嵌套文档变得简单。 安装MongoDB涉及以下几个步骤: 1. 从官方网站...

    MongoDB实战开发 - 零基础学习

    #### 小结 本文通过实战演练,介绍了如何在零基础的情况下,运用C#语言访问和操作MongoDB数据库。从MongoDB的安装配置,到C#驱动的集成使用,再到具体的业务场景代码示例,每个环节都紧密相连,旨在帮助读者快速...

    node.js操作mongodb学习小结

    1、在mongodb创建将要读取的表 创建数据库mongotest 代码如下: use mongotest; 向user表中插入数据 代码如下: db.user.insert({ name:’flyoung’, age:’18’, sex:true }); 2、安装node-mongodb-native 代码...

    nosql实验六- MongoDB的安装与基本操作.docx

    1. 下载 MongoDB Windows 版 2. 设置数据文件和日志文件的存放目录 3. 启动 MongoDB 服务 4. 将 MongoDB 作为 Windows 服务随机启动 5. 安装 MongoDB VUE 在 Windows 环境下安装 MongoDB 需要下载 MongoDB Windows ...

    MongoDB集群安装配置

    #### 七、小结 通过上述步骤,我们成功在Ubuntu 16环境下配置了一个包含四台服务器的MongoDB集群,并进行了基本的功能测试。此配置适用于初步了解MongoDB集群的工作原理及其基本使用方法,为更复杂的应用场景打下了...

    mongodb 数据库操作详解--创建,切换,删除

    ### 小结 MongoDB 的数据库操作相对简单,提供了与传统 SQL 数据库相似的接口。在实际应用中,掌握这些基本操作对于管理和维护 MongoDB 数据库至关重要。随着对 MongoDB 更深入的学习,你会发现它在处理非结构化...

    Mongodb聚合

    #### 小结 聚合框架是 MongoDB 中一项重要的功能,它提供了一种灵活的方式来处理复杂的数据分析任务。通过组合不同的管道阶段,可以构建出满足各种需求的查询逻辑。掌握这些基本的管道阶段及其使用方法对于高效地...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。...16.6 本章小结

    MongoDB使用小结:一些不常见的经验分享

    在实际操作中,我们可能会遇到各种问题,本文将分享一些在使用MongoDB时不太常见的经验与解决方案。 1. **count统计结果错误** 当在分布式集群中使用`count()`方法时,如果存在孤儿文档或者正在进行数据迁移,统计...

    mongodb基本命令实例小结

    MongoDB中,使用`use <database_name>`命令来切换到指定的数据库。例如: ``` use admin; ``` 2. **查看当前数据库** 要查看当前连接的数据库,可以运行`db`命令: ``` db; ``` 3. **查看所有数据库** ...

    Matlab连接MongoDB操作指引

    #### 七、小结 通过以上步骤,我们不仅能够成功地在Matlab环境中连接MongoDB数据库,还能执行一些基本的数据操作。这对于需要在数据分析过程中集成数据库应用的开发者来说,是非常有用的技能。当然,对于更复杂的...

    在linux中安装mongodb的方式小结

    MongoDB提供了多种安装方式,但官方推荐使用`.deb`或`.rpm`方式进行安装,以确保获得最新版本。以下是Ubuntu 16.04下详细安装MongoDB Community Edition的步骤: 首先,我们需要导入MongoDB的公钥,这一步是为了...

Global site tag (gtag.js) - Google Analytics