mongo(三)基本操作

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:
本文来自mongodb官方文档的部分翻译以及自己的理解。
 
CRUD:增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。
mongodb是以文件形式存储数据的,像json一样的field-value。
 
mongodb读操作
 
一般来说,一张图能说明很多问题
mongodb把所有的文件存储在collections中,一个collections是由一些相关的文件组成的,类似与关系数据库中的表。
在mongodb中,query是针对collections的(可以理解为针对表table);
query请求中包括请求条件,从而可以在collections中挑选目标信息返回;
modifier一般会包含limits,skips和sort orders等操作,对数据进行进一步的处理。
db.records.find( { "user_id": { $lt: 42 } }, { "history": 0 } )
可以通过设置第二个{}字典来设置显示的字段(fields)信息,在这里history设置为0,表示history字段不需要显示,反之,设置为1的话只显示history字段
db.records.find( { "user_id": { $lt: 42 } }, { "name": 1, "email": 1 } )
如上,这里就是只显示两个字段信息,name和email

cursor
cursor在mongodb中仍然存在,默认情况下cursor关闭的时间为10分钟无操作之后。可以通过:cursor.addOption()来设置cursor的属性:
 
  
mongodb返回的数据是分批返回的,默认情况下第一次返回101 documents(最多不超过1 megabyte,后续批量大小是4 mb),可通过 batchSize() and  limit()来改变返回数据的数量。
 
添加索引
在mongodb的shell下,通过 db.collection.ensureIndex() 命令来添加索引字段信息,可以使用 explain() 来查询一次查询相关的统计信息。
mongodb返回的数据是分批返回的,默认情况下第一次返回101 documents(最多不超过1 megabyte,后续批量大小是4 mb),可通过 batchSize() and  limit()来改变返回数据的数量。
 
添加索引
在mongodb的shell下,通过 db.collection.ensureIndex() 命令来添加索引字段信息,可以使用 explain() 来查询一次查询相关的统计信息。
db.inventory.ensureIndex( { type: 1 } )
db.inventory.ensureIndex( { type: 1, item: 1 } )

分片集群读取操作

mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上。在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的mongodb请求都没有办法操作。

config server,顾名思义为配置服务器,存储所有数据库元信息(路由、分片)的配置。mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。mongos第一次启动或者关掉重启就会从 config server 加载配置信息,以后如果配置服务器信息变化会通知到所有的 mongos 更新自己的状态,这样 mongos 就能继续准确路由。在生产环境通常有多个 config server 配置服务器,因为它存储了分片路由的元数据,这个可不能丢失!就算挂掉其中一台,只要还有存货, mongodb集群就不会挂掉。

mongodb支持javascript的基本语法

定义变量

var xxx = {"xx","xx"}
插入数据库 
db.xxx.insert(xxx)

查找条件

①: >, >=, <, <=, !=, =
在mongodb中对应于" gt","gt","gte", " lt","lt","lte", "$ne",和shell比较大小的相同

②:and,ro,in,nin
and其实就是默认的搜索条件,不需要添加and

 
②:正则表达式

$where语句
 
update更新 inc累加 set设置

 

upsert语句,如果没有就要插入
具体格式为db.database.update({"xx":"xx"}, {$inc:{"xx":"xx"}}, true)

limit和skip

知识共享许可协议
本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
JSON NoSQL MongoDB
MongoDB【CRUD基本操作】
MongoDB【CRUD基本操作】
|
5月前
|
存储 JSON NoSQL
02 MongoDB - 基本操作
02 MongoDB - 基本操作
13 0
|
10月前
|
NoSQL 关系型数据库 MySQL
MongoDB 基本操作 增删改查
MongoDB 基本操作 增删改查
165 0
|
JSON NoSQL MongoDB
MongoDB基本操作(一)——简介、基本操作、增删改查
MongoDB基本操作(一)——简介、基本操作、增删改查
249 0
|
存储 关系型数据库 MySQL
MySQL数据库基本操作
MySQL数据库基本操作
37 0
|
SQL JavaScript 关系型数据库
mongo 的基本操作
这里可能有的人又会说,使用use xxx 确实切换了数据库,但是在show dbs 里面怎么看不到,这是因为mongo 给你创建了数据库,但是里面没有东西,等有东西的时候自动显示出来。
mongo 的基本操作
|
前端开发 JavaScript NoSQL
mongo 进阶之—— mongoose 基本操作
有的人说,怎么老是成功的,应该需要些失败来看看mongoose的作用,那么咋们就来看看这个失败是怎么处理的
mongo 进阶之—— mongoose 基本操作
|
JSON NoSQL 数据处理
MongoDB 的基本操作|学习笔记
快速学习 MongoDB 的基本操作
142 0
|
SQL JSON NoSQL
【MongoDB】MongoDB入门(一)基本操作&常用命令
【MongoDB】MongoDB入门(一)基本操作&常用命令
121 0
|
JSON NoSQL Shell
搭建Mongo集群以及基本操作
本文介绍了mongo集群的搭建过程,以及mongo和副本集的基本命令。程序通过副本集连接mongo。
148 0
搭建Mongo集群以及基本操作