《MongoDB:The Definitive Guide》查询

前一篇MongoDB:The Definitive Guide笔记,主要记录的是一到三章的内容,数据库其实大部分都是在做查询操作,这章单独记录。

指定返回键

有时候并不需要返回整个文档,这时候可以通过设置,find第二个参数来指定想要返回的键。例如:

只要在第二个参数中输入自己想要返回的key,后面跟个1就可以,如果要在返回的内容中排除这个键/值对,就把1改成0就行。_id默认是返回的,即使没有指定,如果想防止返回,可以写成如下格式:

这样就不会返回_id键值。

查询条件

所有比较操作符

  • $lt 对应 <, less than 的缩写。
  • $lte 对应 <=, less than equal 的缩写。
  • $gt 对应 >, greater than 的缩写。
  • $gte 对应 >=, greater than equal 的缩写。

依日期作为查询条件的例子:

$ne

$ne是not equal的缩写,意思就是不相等,可以用于所有类型的数据,例如:

就是查询所有名字,不为”Jeffrey”的文档。

OR查询

MongoDB中两种方式进行OR查询。

  • $in 可用来查询一个键的多个值。
  • $or 用来完成多个键值的任意给定。

$in

和关系数据库中的in操作差不多,使用如下:

很容易理解,后面跟一个条件数组就行。不仅限数值,可以是任意类型。与$in相对的一个操作是$nin,就是返回不在查询条件中的数据。

$or

$or是最常用的,传入一个条件数组就可以,例如:

$not and $mod
$not是元条件句,可以用在任何条件之上,例如:

上面的语句返回,不能被5取模得1的文档。$mod后面跟一个数组[x,y],value mod x = y。

正则表达式

在MongoDB中也可以使用正则表达式:

使用的是Perl兼容的正则表达式(PCRE)库。

查询数组

$all

使用多个元素来匹配数组。例如:

将会返回同时满足这两个条件的文档。

$size

返回满足长度的文档。

$slice

返回数组的一个子集合。例如:

$slice将返回文档中所有键,别的键说明符都是默认不返回未提及的键

$where

$where可以执行任意的JavaScript作为查询的一部分,也可以使用一个字符串。如无必要少用,速度比常规慢很多。

limit、skip和sort

限制返回条数。

略过前2个文档,返回余下文档。

 

 

此条目发表在前端分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注