mongo(三)基本操作

本文来自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

时间: 2024-12-30 01:07:25

mongo(三)基本操作的相关文章

带你领略 IBM Bluemix平台云

正是基于这样的趋势,IBM 发布了自己的公有云产品,产品名称是 IBM Bluemix,目前正处在公开测试阶段.Bluemix 建立在 Apache 开源项目 Cloud Foundry 之上,并提供了 IBM 及其合作伙伴开发的高质量的服务(Services)供 IT 从业人员使用.本文以 Bluemix 平台的核心组件 - Bluemix Java 运行时为主线,来向读者介绍 IBM 公有云产品 Bluemix,和读者一起去领略平台云给 IT 带来的变化. 这是一个耳熟能详的传说:传说中,凤

实验三 二叉树的基本操作(建立)及遍历

实验三 二叉树的基本操作(建立)及遍历 实验目的 1.学会实现二叉树结点结构和对二叉树的基本操作. 2.通过对二叉树遍历操作的实现,理解二叉树各种操作,学会利用递归方法编写对二叉树等类似递归数据结构进行处理的算法. 实验要求 1.认真阅读和掌握和本实验相关的教材内容. 2.编写完整程序完成下面的实验内容并上机运行. 实验内容 1.编写程序输入二叉树的结点个数和结点值,构造下图所示的二叉树. 2.编写程序,采用中序遍历的递归和非递归算法对此二叉树进行遍历. 提示 从键盘接受输入(先序),以二叉链表

Linux入门基础(三) 文件基本操作管理和常用命令

文件基本操作 命令"cp"用以复制文件或目录: $  cp [-r]  源文件(文件夹) 目标文件(文件夹) -r  递归复制整个目录, 复制文件夹要用这个 -v 显示详细信息,cp -rv 或者 cp -r -v  当复制文件较多时,可以看进度 命令"mv"用来移动或重命名一个文件或目录: $  mv  [-r]  源文件(文件夹)  目标目录 移动时如果指定文件名,则会进行重命名 命令"touch"用以创建一个空白文件或更新一个现有文件的时间

ASP.NET实现Cookie功能的三个基本操作(写入,读取,删除)

依照我的习惯,依照前几天在园子里看到的那篇文章"二逼程序员 VS 苦逼程序员",准确点来说,我就是个苦逼的程序员. 1. 二逼程序员(Day Programmers) 2. 苦逼程序员(Night Programmers) 因为我是个Night Programmer.总是在晚上完成各种编码工作.(这篇文章也是晚上三点开始写的,今天中午写完.)   说正事   简而言之,在Cookie的时候有三个过程,分别是"写入,读取,删除".任何伟大之作都是有基本的东西构成的,而

Linux系统下MongoDB的简单安装与基本操作_MongoDB

Mongo DB ,是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式,备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作. 一.下载mongodb 前往mongodb官网下载页面:https://www.mongodb.org/downloads下载

Linux操作系统之rpm五种基本操作分享

  Linux操作系统现在已经成为流行的操作系统,很多的人都开始学习,Linux操作系统包括了很多的专业知识,今天和大家讲讲Linux操作系统中的rpm基本操作.希望你学会本文中提到rpm的五种基本操作知识,会对你有所帮助.rpm有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装rpm包 rpm 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名.其中包括软件包的名称(foo),版本号(1.0),发行号(1),

javascript数组和字符串基本操作

Javascript数组基本操作     Javascript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数,然而这些数字索引在内部被转换为字符串类型,这是因为javascript对象中的属性名必须是字符串.  一:如何创建数组?    创建数组有2中方式,第一种是对象字面量如下:    var  arrs = [];  // 定义了一个空数组.    还有一种方式是:调用Array的构造函数创建数组    var arrs = new Array(); 二:数组的

php &amp;amp; mysql三日通 2

mysql 一. while循环 在这一课里,我们将会继续深入下去,使用PHP和MySQL来写出一些简单而有用的页面.我们从昨天创建的数据库开始,显示库中的数据,但是会再稍微加以润色. 首先,我们用下面的代码来查询数据库内容. <html><body><?php$db = mysql_connect("localhost", "root");mysql_select_db("mydb",$db);$result =

PHP+MYSQL三日通

mysql 一.PHP/MySQL简介 您应该听说过开放源代码软件(OSS),除非最近六到八个月来您一直住在火星上.这场运动有着巨大的冲击力,已引起一些大公司的注意.象Oralce.Informix,还有多家公司都开始把他们的主力数据库产品移植到OSS的产物之一 - Linux操作系统上. 如果您有足够的技术力量,拥有一个复杂庞大的关系数据库系统(RDBMS)则是如虎添翼.但是也许您对数据库还刚刚入门,您刚刚读了Jay的文章,决定自己也来搞一个数据驱动的网站.可是您也许会发现您缺乏必要的资源来运