1. 查询所有记录:
db.user.find()
相当于:select * from user;
2. 查询 age = 20 的记录:
db.user.find({age:20})
相当于:select * from user where age = 20;
3. 查询 age > 20 的记录:
db.user.find({age:{$gt:20}})
相当于:select * from user where age > 20;
4. 查询 age < 20 的记录:
db.user.find({age:{$lt:20}})
相当于:select * from user where age < 20;
5. 查询 age >= 20 的记录:
db.user.find({age:{$gte:20}})
相当于:select * from user where age >= 20;
6. 查询 age <= 20 的记录:
db.user.find({age:{$lte:20}})
相当于:select * from user where age <= 20;
7. 查询 age >= 20 并且 age <= 30 的记录:
db.user.find({age:{$gte:20,$lte:30}})
8. 查询 name 中包含 '张' 的数据: (模糊查询):
db.user.find({name:/张/})
相当于:select * from user where name like ‘%mongo%’;
9. 查询 name 中 以 '张' 开头的数据:
db.user.find({name:/^张/})
相当于:select * from user where name like ‘mongo%’;
10.查询 name 中 以 '张'结尾的数据:
db.user.find({name:/张$/})
相当于:select * from user where name like ‘%mongo’;
11.查询指定列数据:
db.user.find({},{name:1}) //查询 name 列数据 第一个字段为查询条件
相当于:select name from user;
注:name 也可用 true 或 false 来表示,为 true 时,与 name:1 效果一样,false 则表示排除 name ,显示 name 以外的列信息
12.查询指定列,name,age数据,且 age > 20
db.user.find({age:{$gt:20}},{name:true,age:true})
相当于:select name,age from user where age > 20;
13. 升序、降序排列:
升序:
db.user.find().sort({age:1}) // 以 age 为标准
降序:db.user.find().sort({age:-1})
14. 查询前5条数据:
db.user.find().limit(5)
相当于:selecttop 5 * from user;
15. 查询后10条数据:
db.user.find().skip(10)
相当于:selecttop * from user where id not in(selecttop 10 * from user);
16.查询 5-10之间的数据:
db.user.find().limit(10).skip(5) // 10 之前,5之后,即 5-10 之间<br>// 可用于分页,limit 是 pageSize,skip 是第几页 * pageSize
17.查询 age = 28,或者 age = 29 的数据:
db.user.find({$or:[{age:28},{age:29}]})
相当于:select * from user where age = 28 or age = 29;
18.查询第一条数据:
db.user.findOne()
19.统计查询到的数据的数量:
db.user.find().count()
20.统计 age > 20 的数据的数量:
db.user.find({age:{$gt:20}}).count()
如果,想以比较易读的方式查找数据,可以在最后面添加 pretty()
21.求两列差的总和:db.dtdjrun_0701e.aggregate({$group:{_id:null, "count":{"$sum": {$subtract: ["$end_time", "$start_time"]}}}})