原文链接,复制只为方便查询。
查询所有记录:
db.user.find() 相当于:select * from user;
查询 age = 20 的记录:
db.user.find({age:20}) 相当于:select * from user where age = 20;
查询 age > 20 的记录:
db.user.find({age:{$gt:20}}) 相当于:select * from user where age > 20;
查询 age < 20 的记录:
db.user.find({age:{$lt:20}}) 相当于:select * from user where age < 20;
查询 age >= 20 的记录:
db.user.find({age:{$gte:20}}) 相当于:select * from user where age >= 20;
查询 age <= 20 的记录:
db.user.find({age:{$lte:20}}) 相当于:select * from user where age <= 20;
查询 age >= 20 并且 age <= 30 的记录:
db.user.find({age:{$gte:20,$lte:30}})
查询 name 中包含 '张' 的数据: (模糊查询):
db.user.find({name:/张/}) 相当于:select * from user where name like ‘%mongo%’;
查询 name 中 以 '张' 开头的数据:
db.user.find({name:/^张/}) 相当于:select * from user where name like ‘mongo%’;
查询 name 中 以 '张'结尾的数据:
db.user.find({name:/张$/}) 相当于:select * from user where name like ‘%mongo’;
查询指定列数据:
db.user.find({},{name:1}) // 查询 name 列数据 第一个字段为查询条件 相当于:select name from user; 注:name 也可用 true 或 false 来表示,为 true 时,与 name:1 效果一样,false 则表示排除 name ,显示 name 以外的列信息
查询指定列,name,age数据,且 age > 20
db.user.find({age:{$gt:20}},{name:true,age:true}) 相当于:select name,age from user where age > 20;
升序、降序排列:
升序: db.user.find().sort({age:1}) // 以 age 为标准 降序: db.user.find().sort({age:-1})
查询前5条数据:
db.user.find().limit(5) 相当于:selecttop 5 * from user;
查询后10条数据:
db.user.find().skip(10) 相当于:selecttop * from user where id not in(selecttop 10 * from user);
查询 5-10之间的数据:
db.user.find().limit(10).skip(5) // 10 之前,5之后,即 5-10 之间 // 可用于分页,limit 是 pageSize,skip 是第几页 * pageSize
查询 age = 28,或者 age = 29 的数据:
db.user.find({$or:[{age:28},{age:29}]}) 相当于:select * from user where age = 28 or age = 29;
查询第一条数据:
db.user.findOne()
统计查询到的数据的数量:
db.user.find().count()
统计 age > 20 的数据的数量:
db.user.find({age:{$gt:20}}).count() 如果,想以比较易读的方式查找数据,可以在最后面添加 pretty()
最新回复