MongoDB 基础要点
1. 启动MongoDB Shell
2. findAndModify 命令, 顾名思义, 先查找再修改.
db.user.ensureIndex({"username":1});对内嵌文档创建索引:db.blog.ensureIndex({"commnents.date":1});ensureIndex() 第一个参数来指定要创建的索引, 第二个参数可以对索引进行命名:db.blog.ensureIndex({"commnents.date":1}, {"name":'cmt_date'});还可以指定索引类型:db.user.ensureIndex({"username":1}, {'unique': true}); // 唯一索引//复合索引(详细可以查看MONGODB的GirdFS那个章节).
值 1 或 -1 表示索引的方向, 如果索引就只有一个键(单键索引),方向就无关紧要. 就如: 从A-Z ,还是从 Z-A.如果是多键索引就值得考虑方向.举例: 如果user 集合中对 键 username 和 age 创建一个索引:db.user.ensureIndex({"username":1, "age": -1});对username按字母顺序, 年龄age 按照降序来排列, 那username相同的就是按照age降序排列.创建索引的缺点就是在插入,更新和删除时都会产生额外的开销(需要维护这些索引).要合理的创建索引(默认最大索引数目64个).创建索引前,先回答一下问题:1)是什么样的查询, 哪些键需要索引?2)每个键的索引方向是怎么样的?3)如果应对扩展(在索引中键的先后顺序, 会导致数据使用内存的大小, 尽快能数据多的保留咋内存中, 提高内存的利用率)?注意:1) 对要排序的键创建索引(对没有索引的键进行排序的话, mongoDB会把数据提取到内存中进行排序, 如果数据太大, 可能会导致内存耗光).2)消除重复. 如果对已经有数据的集合创建唯一索引, 集合中可能有些值是重复的, 如果发生这种情况创建索引会失败. 如果需要把重复的删除掉,可以使用"dropDups" 比如:db.people.ensureIndex({"username":1}, {"unique":true, "dropDups":true}). 对于重要的数据来说话,这个语句很危险. 建议用脚本做批量处理.3) 集合名称长度不能超过121字节(每个数据库的system.namespaces 集合中,命名空间长度是127字节, 默认的情况下命名空间需要 .$_id_ 刚好就是6个字节,如果名称超过了121字节,在命名空间集合中, 集合名称+索引名称超过了 127字节).
1)explain() 类似mysql 的explain使用用列:db.user.find().explain();可以发现是游标对explain 调用, 然后返回查找查询细节文档(非游标文档).2)hint() 强制使用某个索引.
索引集合system.indexes 集合system.namespaces 集合特殊索引: 2d - 地理空间索引(以后详细介绍)
- count
db.foo.count();
db.foo.count({"x":1}); - distinct
db.runCommand( { "distinct" : "people", "key" : "age"} );
必须字节集合名称和要查询的键 - group
db.runCommand( {"group" : {
"ns" : "集合名称",
"key" : "键",
"initial" : "{初始化值}",
"$reduce" : function (cur, pre) {
//操作函数, 有两个参数, cur 当前文档, pre 累加器文档
},
"condition" : {条件},
"$finalize" : function(pre){
//完成器
},
"$keyf":function(){
//处理键
},
}} );没一组都有一个独立的累加器.
- MapReduce(独立学习)
![](/assets/blank.gif)
![](/assets/blank.gif)
MongoDB 基础要点相关推荐
- MongoDB基础教程系列--目录结构
MongoDB基础教程系列--目录结构
- MongoDB 基础用法及学习笔记
MongoDB 基础用法 环境配置与安装 安装 查看MongoDB版本 启动MongoDB服务 检查服务状态 启动服务 打开配置文件,连接MongoDB 查看数据列表 退出 MongoDB 连接 Mo ...
- MongoDB 基础浅谈
作者:hazenweng,腾讯 QQ 音乐后台开发工程师 MongoDB 作为一款优秀的基于分布式文件存储的 NoSQL 数据库,在业界有着广泛的应用.下文对 MongoDB 的一些基础概念进行简单介 ...
- Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...
- MongoDB基础使用
5.MongoDB基础使用 5.1.常用的命令(重点) > Help 查看帮助 显示数据库列表 > show dbs 创建数据库 > use dbname 如果数据库不存在,则创建数 ...
- 学java 的要点_零基础学Java,掌握Java的基础要点
对于程序员群体来说,了解一定的技巧会对学习专业技能更有帮助,也更有助于在自己的职业发展中处于有利地位,无限互联Java培训专家今天就为大家总结Java程序员入门时需要掌握的基础要点: 掌握静态方法和属 ...
- Oracle SQL 基础要点
Oracle SQL 基础要点 本文是学习<程序员的SQL金典>时的读书摘要,记录一些自己不太熟悉或者很重要的知识点.方便后期对照复习. 1.各种主流数据库的优缺点比较 - DB2由IBM ...
- MongoDB基础指令
MongoDB基础指令 1.创建数据库 2.删除数据库 3.创建集合 4.删除集合 5.插入文档(数据) 6.更新数据 7.删除文档 8.查询文档 9.条件操作符 10.Type操作符 1.创建数据库 ...
- MongoDB基础-张晓飞-专题视频课程
MongoDB基础-175人已学习 课程介绍 本套视频是MongoDB的基础视频,其中涵盖了MongoDB简介.下载.安装.添加系统服务.图形化客户端的使用.以及MongoDB的CRU ...
最新文章
- opencv隔点采样(下采样)
- nbns协议_网络协议详解1 - NBNS
- Python中join 和 split详解
- css鼠标移入线条延中心伸长,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
- 日志中出现乱码_合宙Luat | 乱码搞得一团糟?开源神器帮你轻松修复
- 简单的11步在Laravel中实现测试驱动开发
- 【MyBatis笔记】06-Mapper动态代理
- 2008服务器修改ipv4,Windows 2008/2012/2016如何添加配置多IP
- STM32 ADC没有输入电压时,采集结果不为0
- DatabaseMetaData的用法(转)
- Java 初学者建议
- 如何看旷视南京负责人魏秀参跳槽高校工作?
- PCB封装绘制时的摆放方向
- iconfont 在项目中使用阿里icon
- 运营商价格战终于打起来了,中国联通也有19元套餐
- 软文和广告的区别在哪里?软文是广告吗?
- 【智能优化算法】基于分段权重和变异反向学习的蝴蝶优化算法求解单目标优化问题附matlab代码
- composer的初级使用
- VScode 的 code snippet 中可以使用的一些变量(时间,日期等)
- python录入数据至ppt_利用Python进行数据分析之 数据加载.ppt