mongo(三)基本操作

mongo(三)基本操作

mongo(三)基本操作

本文来自mongodb官方文档的部分翻译以及自己的理解。
 
CRUD:增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。
mongodb是以文件形式存储数据的,像json一样的field-value。
 
mongo(三)基本操作
 
 
mongodb读操作
 
一般来说,一张图能说明很多问题
mongo(三)基本操作
 
mongodb把所有的文件存储在collections中,一个collections是由一些相关的文件组成的,类似与关系数据库中的表。
 
mongo(三)基本操作
在mongodb中,query是针对collections的(可以理解为针对表table);
query请求中包括请求条件,从而可以在collections中挑选目标信息返回;
modifier一般会包含limits,skips和sort orders等操作,对数据进行进一步的处理。
mongo(三)基本操作
 
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的属性:

mongo(三)基本操作
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 } )

分片集群读取操作

mongo(三)基本操作

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”, “$gte”, “$lt”, “$lte”, “$ne”,和shell比较大小的相同
mongo(三)基本操作
②:and,ro,in,nin
and其实就是默认的搜索条件,不需要添加and
mongo(三)基本操作
 
②:正则表达式
mongo(三)基本操作
$where语句
 
update更新 inc累加 set设置
mongo(三)基本操作
 
mongo(三)基本操作
upsert语句,如果没有就要插入
具体格式为db.database.update({“xx”:”xx”}, {$inc:{“xx”:”xx”}}, true)
mongo(三)基本操作

limit和skip
mongo(三)基本操作

转载于:https://www.cnblogs.com/coder2012/p/4130681.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109641.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nginx + FastCGI架构部署指导

    Nginx + FastCGI架构部署指导本文主要介绍使用Nginx+FastCGI技术,搭建一个简单的WebServer的方法。关于Nignx的相关知识,请点击此处。关于FastCGI的相关知识,请点击此处。1.概述Nginx不能像Apache那样直接执行外部的可执行程序,但是Nginx可以作为代理服务器,将Web请求转发给后端(服务器中的)应用程序,这是Nginx的主要作用之一。在本文…

    2022年7月11日
    24
  • Mysql之Linux环境下如何彻底删除卸载Mysql

    Mysql之Linux环境下如何彻底删除卸载Mysql首先连接操作系统,切换到root用户。一、如果是使用yum安装的mysql,使用如下命令进行卸载(不能确定使用何种方式安装的mysql情况下,按后续步骤一一进行处理即可):#yumremovemysqlmysql-servermysql-libscompat-mysql51#rm-rf/var/lib/mysq#rm/etc/my.cnf使用rpm-qa|grepmysq…

    2022年6月18日
    34
  • java二维数组行列互换_java 二维数组行列互换[通俗易懂]

    java二维数组行列互换_java 二维数组行列互换[通俗易懂]代码需求:对等行等列的二维数组进行行列的互换分析过程主对角线是保持不变行列互换即角标互换:[0][1]=>[1][0]循环次数:外层循环行,内层循环每一行的列示意图代码实现publicclassArrayReverse{publicstaticvoidmain(String[]args){intarry[][]=newint[][]{{1,2,3},{4,5…

    2022年5月22日
    81
  • 计算机三级数据库技术复习资料总结

    计算机三级数据库技术复习资料总结第7章数据库及数据库对象一、创建及维护数据库1、两大类:系统数据库(自动创建和维护的):master:最重要的数据库,记录所有系统级信息,主要的信息都是存放在这。msdb:保存报警、作业、操作员等信息。(考的不多)model:所有创建数据库的模板。tempdb:临时数据库,每次启动SQL都会重新创建,因此不需要备份。Resource:只读数据库。(没见过考)用户数据库(用户创建和维护)经常考选择题:系统数据库如何备份?(未完成)2、数据库文件分类数据文件:主要数据文件:每个数据

    2022年6月18日
    25
  • MessageDigest简介

    MessageDigest简介本文博客原文参考文章:http://blog.sina.com.cn/s/blog_4f36423201000c1e.html一、概述java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如MD5或SHA算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收任意大小的数据,输出固定长度的哈希值。关于信息

    2022年6月14日
    40
  • WinZip Pro 9 for Mac(专业zip压缩解压工具)

    WinZip Pro 9 for Mac(专业zip压缩解压工具)WinzipMac是Mac上的老牌解压缩软件,老字号的压缩软件当然更稳定更靠谱。WinzipMac注册版率先支持ribbon界面,支持ZIP、CAB、TAR、GZIP、MIME,以及更多格式的压缩文件。您可以压缩并加密文件更快捷,更安全。安装:WinZipPro9forMac(专业zip压缩解压工具)zip压缩工具Mac版功能亮点压缩文件以节省空间并发送更快的电子邮件压缩文件可节省宝贵的存储空间,减少文件上载/下载时间,并使您可以发送更快,更高效的电子邮件。-新!WinZ

    2022年9月25日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号