开发者学堂课程【快速掌握 MongoDB 数据库:where查询】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/400/detail/5188
where查询
内容简介:
一、 条件过滤
1. 什么是条件过滤?
2. 怎么编写?
3. 查询多项的编写
4. where的过滤有什么样的使用过程和限制?
一、 条件过滤
1.什么是条件过滤?
实际上习惯于传统关系型数据库开发的对于数据的筛选,首先想到的一定是 where 子句,在 MongoDB 里面也提供有“$where”。
2.怎么编写?
例:使用 where 进行数据查询(比如现在要查询年龄大于20岁的人)
db.students.find({"$where":"this.age>20"}).pretty();
这里面的this表示它要进行每一条的循环判断。
简写 db.students.find("this.age>20").pretty();
对于“$where”是可以简化的,但是这类的操作是属于进行每一行的信息判断,实际上对于数据量较大的情况,并不方便使用。实际上以上的代码严格来讲是属于编写一个操作函数。
db.students.find(function(){
return this.age>20;
}).pretty();
3.查询多项的编写
以上只是查询了一个判断,如果想要实现多个条件的判断,就需要使用and连接。
db.students.find({"$and":[
{"$where":"this.age>19"},
{"$where":"this.age<21}]});
虽然这种形式的操作可以实现数据查询,但是最大的缺点是将MongoDB里面保存的BSON数据变为了JavaScr的语法结构,这样的方式不方便使用数据库索引机制。
4. where的过滤有什么样的使用过程和限制?
它能够利用JavaScr查询,但是它会把BSON重新进行循环验证,索引是不能起作用的,在整个MongoDB里面索引的提升是相当明显的,它提供大量的操作。