mongodb 条件查询

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 之间
// 可用于分页,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()

posted @ 2018-08-06 10:56  Sky_Ice  阅读(18240)  评论(0编辑  收藏  举报