①比較運算符:
等於:默認是等於判斷,沒有運算符
小於:$lt(less than)
小於等於:$lte(less than equal)
大於:$gt(greater than)
大於等於:$gte(greater than equal)
不等於:$ne(not equal)
db.stu.find({age:{$gte:18}})
②邏輯運算符:
and:在json中寫多個條件即可,查詢年齡大於或等於18,並且性別為true的學生
db.stu.find({age:{$gte:18},gender:true})
or:使用$or,值為數組,數組中每個元素為json,查詢年齡大於18,性別為false的學生
db.stu.find({$or:[{age:{$gt:18},{gender:flase}}]})
查詢年齡大於18或性別為男生,並且姓名是郭靖
db.stu.find({$or:[{age:{$gte:18},{gender:true}}],name:"gj"})
③范圍運算符:
使用“$in”,"$nin"判斷是否在某個范圍內,查詢年齡為18,28的學生
db.stu.find({age:{$in:[18,28]}})
④支持正則表達式
使用//或regex編寫正則表達式,查詢姓黃的學生
db.stu.find({name:/^黃/})
db.stu.find({name:{$regex:"^黃"}})
⑤limit和skip
方法limit():用於讀取指定數量的文檔
db.集合名稱.find().limit(number)
//查詢2條學生信息 db.stu.find().limit(2)
方法skip():用於跳過指定數量的文檔
db.集合名稱.find().skip(number)
//db.stu.find().skip(2)
同時使用db.stu.find().limit(4).skip(5)或db.stu.find().skip(5).limit(4)
⑥自定義查詢:
使用$where后面寫一個函數,返回滿足條件的數據
查詢年齡大於30的學生
//db.stu.find(){
$where:function(){
return this.age>30;
}
}
⑦投影:
在查詢到的返回結果中,只選擇必要的字段db.集合名稱.find({},{字段名稱:1...})
參數為字段值,值為1表示顯示,值為0不顯
特殊:對於_id列默認是顯示的,如果不顯示需要明確設置為0
⑧排序:
方法sort(),用於對集合進行排序
db.集合名稱.find().sort({字段:1....})
參數為1為升序排列
參數為-1為降序排列
根據性別降序,在根據年齡升序 db.stu.find().sort({gender:-1,age:1})
⑨統計個數
方法count()用於統計結果集中文檔條數
db.集合名稱.find({條件}).count()
db.集合名稱.count({條件})
db.stu.find({gender:true}).count()
db.stu.count({age:{$gt:20},gender:true}
⑩消除重復
方法distinct()對數據進行去重
db.集合名稱。distinct("去重字段",{條件})
db.stu.distinct(“hometown,{age:{$gt:18}}”)