1.1.1.1判断某个字段是否存在 使用"$exists"可以判断某个字段是否存在,如果设置为true就表示存在,如果设置为false就表示不存在
范例:查询具有course成员的数据
范例:查询不具有course成员的数据信息
可以利用此类查询来进行一些不需要的数据的过滤
1.1.1.2条件过滤
实际上习惯于传统关系数据库开发的我们对于数据的筛选,可能首先想到的一定是where字句,所以在MongoDB里面也提供了"$where"
范例:使用where进行数据的查询所有年龄大于20的人
对于"$where"是可以简化的,但是这类的操作是属于进行每一行的信息进行判断使用。
实际上以上的代码严格来讲是属于编写一个操作的函数
以上只是查询了一个数据,如果想要实现多个条件的判断,那么就需要使用and连接
虽然这种形式的操作可以实现数据查询,但是最大的缺点是将在MongoDB里面保存的BSON变为了js的语法结构,这样的方式不方便使用数据库索引机制。
1.1.1.3正则运算
如果要实现模糊查询,那么必须使用正则表达式,而且正则表达式使用的是语言Perl兼容的正则表达式的形式。
如果要想实现正则使用,则按照如下的定义格式:
基础语法:{key:正则标记}
完整语法:{key:{“$regex”:正则标记,“$options”:选项}}
对于option主要是设置正则的信息查询的标记
“i”:忽略字母大小写
“m”:多行查找
“x”:空白字符串除了被转义的huo在字符类中以外的完全被忽略
“s”:匹配所有的字符(圆点,.),包括换行内容
需要注意的是,如果是直接使用(js)那么只能够使用i和m,而“x”和“s”必须使用“$regex”.
范例:查询以“谷”开头的姓名
范例:查询名字中含有字母A的信息
如果要执行模糊查询的操作,严格来讲只需要编写一个关键字就够了,但用的最多的是i,且仅针对英文。
正则操作之中除了可以查询出单个字段的内容之外,也可以进行数组数据的查询
范例:查询课程数据
1.1.1.5数据排序
在MongoDB里面数据的排序操作使用“sort()”函数,在进行排序的时候可以有两个顺序:升序(1),降序(-1)。
范例:数据排序
但是在进行排序的过程里面有一种方式,成为自然排序,按照数据保存的先后顺序排序,使用“$natural”表示
范例:
在MongoDB数据库里面排序的操作相比较传统关系型数据库的设置要简单
1.1.1.6数据分页显示
在MongoDB里面的数据分页显示也是符合与大数据要求的操作
skip(n):表示跨过多少数据行。
limit(n):取出的数据行的个数限制。
范例:分页显示(第一页,skip(0),limit(5))
范例:分页显示(第二页,skip(5),limit(5))
这两个分页的控制操作,就是在以后只要是存在有大数据的信息下都使用。
1.1.1.1