博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongo(三)基本操作
阅读量:5846 次
发布时间:2019-06-18

本文共 1926 字,大约阅读时间需要 6 分钟。

本文来自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),可通过  and  来改变返回数据的数量。
 
添加索引
在mongodb的shell下,通过  命令来添加索引字段信息,可以使用  来查询一次查询相关的统计信息。
mongodb返回的数据是分批返回的,默认情况下第一次返回101 documents(最多不超过1 megabyte,后续批量大小是4 mb),可通过  and  来改变返回数据的数量。
 
添加索引
在mongodb的shell下,通过  命令来添加索引字段信息,可以使用  来查询一次查询相关的统计信息。
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

本文 由  创作,采用 进行许可。欢迎转载,请注明出处:
转载自: 

你可能感兴趣的文章
DNS 隐蔽通道工具资料汇总
查看>>
初识Redux-Saga
查看>>
强大的jQuery选择器 (详解)[转]
查看>>
python 升级pip
查看>>
break、return、continue的区别
查看>>
在Studio中使用Access数据库时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”...
查看>>
centos7 安装mysql5.7.11注意事项
查看>>
Visual Studio DSL 入门 10---完善状态机案例
查看>>
Grafana中进行MySQL查询-时区问题
查看>>
Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_【转】
查看>>
git/ssh捋不清的几个问题
查看>>
UART硬件流控制信号的使用(图)DTR 【转】
查看>>
Elasticsearch或查询
查看>>
分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
查看>>
HBase编程 API入门系列之工具Bytes类(7)
查看>>
WP7开发第一课:WP7项目组织结构&简单登陆例子(其二)
查看>>
Maven 简单配置gpg
查看>>
波特率原理【转】
查看>>
Virtual Machine虚拟机原理
查看>>
20篇教你得到酷炫效果的JQuery教程
查看>>