接触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 使用BSON(Binary JSON)格式存储数据,这种格式与JSON相似,但支持二进制数据,使得存储复杂数据类型如数组和嵌套文档变得简单。 安装MongoDB涉及以下几个步骤: 1. 从官方网站...
#### 小结 本文通过实战演练,介绍了如何在零基础的情况下,运用C#语言访问和操作MongoDB数据库。从MongoDB的安装配置,到C#驱动的集成使用,再到具体的业务场景代码示例,每个环节都紧密相连,旨在帮助读者快速...
1、在mongodb创建将要读取的表 创建数据库mongotest 代码如下: use mongotest; 向user表中插入数据 代码如下: db.user.insert({ name:’flyoung’, age:’18’, sex:true }); 2、安装node-mongodb-native 代码...
1. 下载 MongoDB Windows 版 2. 设置数据文件和日志文件的存放目录 3. 启动 MongoDB 服务 4. 将 MongoDB 作为 Windows 服务随机启动 5. 安装 MongoDB VUE 在 Windows 环境下安装 MongoDB 需要下载 MongoDB Windows ...
#### 七、小结 通过上述步骤,我们成功在Ubuntu 16环境下配置了一个包含四台服务器的MongoDB集群,并进行了基本的功能测试。此配置适用于初步了解MongoDB集群的工作原理及其基本使用方法,为更复杂的应用场景打下了...
### 小结 MongoDB 的数据库操作相对简单,提供了与传统 SQL 数据库相似的接口。在实际应用中,掌握这些基本操作对于管理和维护 MongoDB 数据库至关重要。随着对 MongoDB 更深入的学习,你会发现它在处理非结构化...
#### 小结 聚合框架是 MongoDB 中一项重要的功能,它提供了一种灵活的方式来处理复杂的数据分析任务。通过组合不同的管道阶段,可以构建出满足各种需求的查询逻辑。掌握这些基本的管道阶段及其使用方法对于高效地...
作为基于分布式文件存储的数据库,在目前的云计算实践中,MongoDB炙手可热。《深入云计算(MongoDB管理与开发实战详解)》系统全面的介绍了MongoDB开发、管理、维护和性能优化等方方面面。...16.6 本章小结
在实际操作中,我们可能会遇到各种问题,本文将分享一些在使用MongoDB时不太常见的经验与解决方案。 1. **count统计结果错误** 当在分布式集群中使用`count()`方法时,如果存在孤儿文档或者正在进行数据迁移,统计...
MongoDB中,使用`use <database_name>`命令来切换到指定的数据库。例如: ``` use admin; ``` 2. **查看当前数据库** 要查看当前连接的数据库,可以运行`db`命令: ``` db; ``` 3. **查看所有数据库** ...
#### 七、小结 通过以上步骤,我们不仅能够成功地在Matlab环境中连接MongoDB数据库,还能执行一些基本的数据操作。这对于需要在数据分析过程中集成数据库应用的开发者来说,是非常有用的技能。当然,对于更复杂的...
MongoDB提供了多种安装方式,但官方推荐使用`.deb`或`.rpm`方式进行安装,以确保获得最新版本。以下是Ubuntu 16.04下详细安装MongoDB Community Edition的步骤: 首先,我们需要导入MongoDB的公钥,这一步是为了...