1. 指定需要返回的键
db.users.find({},{"username":1,"email":1});
2. 查询条件
db.user.find({"age":{"$gte":18,"$lte":30}});
3. in、nin、or查询
db.raffle.find({"ticket_no",{"$in":[231,23,123,35]}});
db.raffle.find({"ticket_no",{"$nin":[231,23]}});
db.raffle.find({"$or":[{"ticket_no":725},{"winner":true}]});
4. 取反$not
先取模,再取反
取模会得到1、6、11、16等
db.users.find({"id_num":{"$not":{"$mod":[5,1]}}});
5. 特定查询null
这里不仅会查询到y为null的值,而且y不存在的也会查出来
db.c.find({"y":null});
如果仅仅想查y为null的呢?
db.c.find({"y":{"$in":[null],"$exists":true}});
6. 查询数组
db.food.find({fruit:{$all:["apple","banana"]}});
特定位置元素匹配
db.food.find({"fruit.2":"peach"});
7. 避免使用skip略过大量结果