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()