一、Find查询
事前准备:插入如下数据
db.Students.insert([
{ _id:1, name:"Zhao", age:25, country:"USA", books:["JS","C++","EXTJS","MONGODB"]},
{ _id:2, name:"Qian",age:22, country:"USA", books:["PHP","JAVA","EXTJS","C++"]},
{ _id:3,name:"Sun",age:26, country:"USA", books:["JS","JAVA","C#","MONGODB"]},
{ _id:4, name:"Li",age:27,country:"China",books:["JS","JAVA","EXTJS","MONGODB"]},
{ _id:5,name:"Zhou", age:30,country:"China",books:["JS","C#","PHP","MONGODB"]},
{ _id:6, name:"Wu", age:27, country:"Japan", books:["JS","JAVA","C++","MONGODB"]},
{ _id:7, name:"Zheng", age:27, country:"UK", books:["JS","JAVA","EXTJS","PHP"]},
{ _id:8, name:"Wang", age:26, country:"Korea",books:["JS","C#","EXTJS","MONGODB"]}
])
1.指定返回的键
db.[文档名].find ({条件},{键指定})
查询出所有数据的指定键(name ,age ,country)
db.Students.find({},{name:1,age:1,country:1,_id:0})
- ※条件不写就是查询全部
- ※需要查询的就在键后指定为1,不用就指定为0(感觉只要想查的键后面有值不见得非得是1)
- ※如果不指定显示=式_id:0,那查询过程都是带有_id的
2.查询条件
比较操作符 | 意义 | 举例 |
---|---|---|
$lt | < | 查询出id小于5的学生 > db.Students.find({_id:{$lt:5}},{}) |
$lte | <= | 查询出年龄小于等于25岁之间的学生 > db.Students.find({age:{$lte:25}},{}) |
$ne | != | 查询出国家不是中国的学生 > db.Students.find({country:{$ne:"China"}},{}) |
$gt | > | 查询所有年纪大于27岁的,中国学生名字 > db.Students.find({age:{$gt:27}},{name:1,country:1,age:1}) { "_id" : 5, "name" : "Zhou", "age" : 30, "country" : "China" } |
$gte | >= | 同上 |
3.包含或不包含
较操作符 | 意义 | 举例 |
---|---|---|
$in | 包含 | 查询国家是中国和美国的学生 > db.Students.find({country:{$in:["China","USA"]}},{}) |
$nin | 不包含 | 查询年龄不是27岁的学生 > db.Students.find({age:{$nin:[27]}},{}) |
4.OR查询
较操作符 | 意义 | 举例 |
---|---|---|
$or | 包含 | 查询年龄小于27岁,或者国家是美国的学生 >db.Students.find({$or:[{age:{$lt:27}},{country:"USA"}]},{}) 查询年龄大于等于30岁,或者国家是不是美国的学生 >db.Students.find({$or:[{age:{$gte:30}},{country:{$nin:["China"]}}]},{}) |
5.Null
为所有美国学生添加性别属性为男性(M)
> db.Students.update({country:"USA"},{$set:{sex:"M"}},false,true)
查询所有sex属性为null的学生
> db.Students.find({sex:{$in:[null]}},{name:1,country:1})
6.正则查询
查询出名字中存在”Zh”的学生的信息
> db.Students.find({name:/Zh
本文标题为:MongoDB实现查询、分页和排序操作以及游标的使用


基础教程推荐
- oracle19c卸载教程的超详细教程 2023-07-23
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28
- Python常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- redis 数据库 2023-09-13
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24
- redis乐观锁与悲观锁的实战 2023-07-13
- oracle数据库排序后如何获取第一条数据 2023-07-24