MongoDB学习笔记02

MongoDB中使用find来进行查询,查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合。find的第一个参数决定了要返回哪些文档。空的查询文档{}会匹配集合的全部内容,要是不指定查询文档,默认就是{}。

MongoDB查询使用上还是有些限制的,数据库所关系的查询文档的值必须是常量,也就是不能引用文档中其它键的值。

查询条件 "$lt"、"$lte"、"$gt"、"$gte"、"$ne"就是全部的比较操作符,分别对应<、<=、>和>=与"不相等";

"$in" 用来查询键值在某个范围内值   "$nin" 用来查询键值不在某个范围内的值

"$or" 接受一个包含所有可能条件的数组作为参数

"$mod" 取模运算符,会将查询的值除以第一个给定值,若余数等于第二个给定值则返回该结果

"$not" 查询与特定模式不符的文档

一个键可以有多个条件,但一个键不能对应多个更新修改器

null不仅仅匹配自身而且匹配“不存在的”,这种匹配还会返回缺少这个键的所有文档

如果仅仅想要匹配键值为null的文档,既要检查该键的值是否为null,还要通过“$exists”条件判断键值是否存在

MongoDB使用Perl兼容的正则表达式(PCRE)库来匹配正则表达式,PCRE支持的正则表达式语法都能被MongoDB接受,在使用正则表达式前,可以现在JavaScrip shell中检查一下语法

如果需要通过多个元素来匹配数组,就要使用"$all"

“$size”可以用其查询指定长度的数组

“$slice”返回数组的一个子集合,可以接受偏移值和要返回的元素的数量,除非特别声明,否则返回文档中的所有键

查询内嵌文档有两种方法:查询这个文档,或只针对其键/值对进行查询

查询整个文档要求结构与原数据完全匹配(包括顺序一样)

"$elemMatch"将限定条件进行分组,仅当对一个内嵌文档的多个键操作时才会用到,结果返回满足条件的所有文档

"$where"可以执行任意JavaScript作为查询的一部分,是的查询几乎能做任何事情,但是不是必要时要避免使用"$where"查询,因为它在速度上要比常规查询慢很多,每个文档都要从BSON转为JavaScript对象,然后通过"$where"的表达式来运行,同样还不能使用索引

时间: 2024-11-14 11:11:41

MongoDB学习笔记02的相关文章

mongodb 学习笔记 02 -- CURD操作

mongodb 学习笔记 02 – CURD操作 CURD代表创建(Create).更新(Update).读取(Read)和删除(Delete)操作 创建库 直接 use 库名 然后创建collection 就可以创建库 创建collecion db.createCollection("collectionName") 隐式创建collection db.collectionName.insert({xxxxxx}) 删除collection db.collectionName.dro

MongoDB学习笔记—02 MongoDB入门

Mongodb的基本概念 文档:是MongoDB中数据的基本单元,类似于关系型数据库中的行. 集合:多个文档组成一个集合,类似于关系型数据库中的表. 数据库:MongoDB的当个实例可以容纳多个独立的数据库,每个数据库有自己的集合和权限. 键:每个文档都有一个特殊的键”_id”,在所处的集合中是唯一的. 文档 多个键值对有序的放在一起便是文档,如: { "name":"wangdh","age":"22"} 上面的文档包含两个

[MongoDB学习笔记-02] Node.js连接MongoDB的两种方法

MongoDB Node.js驱动程序是被官方所支持的原生Node.js驱动程序,他是至今为止最好的实现, 并且得到了MongoDB官方的支持.MongoDB团队已经采用MongoDB Node.js驱动程序作为标准方法. npm install mongodb@1.4.3 // MongoDB Node.js驱动程序 npm install mongoose@3.8.8 //mongoose模块 要从Node.js连接MongoDB数据库我们有两种方法可选择: 通过实例化mongodb模块中提

MongoDB学习笔记系列

回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助和启发,文章中有对新技术的研究(Mongo驱动),对老技术的回顾(代码重构),还有对架构设计的阐述等(面向接口编程,对扩展开放,对修改关闭,所以出现了IMongoRepository接口). MongoDB学习笔记系列~目录 MongoDB学习笔记~环境搭建 (2015-03-30 10:34) M

【OpenGL 学习笔记02】宽点画线

我们要知道,有三种绘图操作是最基本的:清除窗口,绘制几何图形,绘制光栅化对象. 光栅化对象后面再解释. 1.清除窗口 比如我们可以同时清除颜色缓冲区和深度缓冲区 glClearColor (0.0, 0.0, 0.0, 0.0);//指定颜色缓冲区清除为黑色 glClearDepth(1.0);//指定深度缓冲区的清除值为1.0 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//指定要清除的缓冲区并清除 2.绘制几何图形 先要设置绘制颜色,

MongoDB学习笔记一:MongoDB的下载和安装

趁着这几天比较空闲,准备学习一下MongoDB数据库,今天就简单的学习了一些MongoDB的下载和安装,并创建了存储MongoDB的数据仓库.将自己今天学习到的写成博客分享给大家. 一.MongoDB的下载和安装 MongoDB的下载地址为:http://www.mongodb.org/ 1.进入官网的首页后,在首页的右上方单击Downloads连接,如图所示: 2.在页面中可以看到目前最新的版本和以前发布过的版本,这里选择最新版本,windows 32位的进行下载,文件的格式为ZIP格式的,单

SWIFT学习笔记02

1.//下面的这些浮点字面量都等于十进制的12.1875: let decimalDouble = 12.1875 let exponentDouble = 1.21875e1 let hexadecimalDouble = 0xC.3p0//==12+3*(1/16) 2.//类型别名,用typealias关键字来定义类型别名 typealias AudioSample = UInt16 var maxAmplitudeFound = AudioSample.min 3.//元组 let ht

Blender学习笔记 | 02 | 操作

Shift 点击不同图层 同时显示多图层物件 z 切换 Solid / Wireframe 视图模式 点选物件后M 移动到图层选项 Ctrl + 鼠标左键拖动 自由全选物件 B 方形区域圈选物件 Tab Object / Edit Mode 切换 T 开 / 关 侧栏 Ctrl + Tab 编辑状态下切换编辑对象 E Extrude Region 推挤区域.以发现为轴线. X 删除物件菜单 Blender学习笔记 | 02 | 操作,布布扣,bubuko.com

MongoDB学习笔记(一:安装时出现The default storage engine &#39;wiredTiger&#39; is not available问题解决)

今晚在自己老式笔记本来试了一下MongoDB的安装,由于配置比较低,只能选择32位版本的MongoDB进行安装,在安装过程中碰到了上述标题所示错误,自己也捣鼓了一个小时左右,终于在一篇博客中找到答案,具体原文链接如下:http://blog.csdn.net/u013457382/article/details/50775268 MongoDB学习笔记(一:安装时出现The default storage engine 'wiredTiger' is not available问题解决)