mongoDB高階查詢解析

2021-12-30 08:41:55 字數 1900 閱讀 3342

資料查詢

find(): 查詢

db.集合名稱.find() findone():查詢,只返回第乙個

db.集合名稱.findone()

pretty(): 將結果格式化n

db.集合名稱.find().pretty()

比較運算子

等於: 預設是等於判斷, 沒有運算子 小於:$lt (less than) 小於等於:$lte (less than equal) 大於:$gt (greater than) 大於等於:$gte

不等於:$ne

邏輯運算子

and:在json中寫多個條件即可

查詢年齡大於或等於18, 並且性別為true的學生

db.stu.find(,gender:true}) or:使$or, 值為陣列, 陣列中每個元素為json

查詢年齡大於18, 或性別為false的學生

db.stu.find(},]}) 混合查詢

查詢年齡大於18或性別為男性, 並且家鄉為廣州

db.stu.find(},],hometown:'廣州'})

範圍運算子

"$in" : 判斷在某個範圍內 "$nin" 判斷不在某個範圍內 查詢年齡為18或20的學生

db.stu.find(}) 查詢年齡為不為18或20的學生

db.stu.find(})

limit和skip

語法limit(): 大於讀取指定數量的文件

語法: db.集合名稱.find().limit(number)

查詢2條學生資訊 db.stu.find().limit(2)

語法skip(): 大於跳過指定數量的文件

語法: db.集合名稱.find().skip(number) 跳過三個學生,查詢後面的 db.stu.find().skip(3)

查詢學生資訊跳過3個學生, 再查詢2個學生

同時使用:

db.stu.find().limit(2).skip(3) db.stu.find().skip(3).limit(2) (推薦)

投影在查詢到的返回結果中, 只選擇必要的字段 語法: db.集合名稱.find({},)

引數為字段與值, 值為1表示顯示, 值為0不顯示, 普通欄位不寫就是不顯示

特殊: 對於_id列缺省是顯示的, 如果不顯示需要明確設定為0, 其他欄位不顯示不寫即可

查詢所有學生資訊,只顯示姓名和年齡

db.stu.find({},)

查詢的結果,除了name,age外還有_id型別 如何去掉_id欄位呢 , 在投影中給_id指定為0

db.stu.find({},)

排序語法sort()

語法: db.集合名稱.find().sort()

引數1為公升序排列 引數-1為降序排列 查詢所有學生,按年齡公升序

db.stu.find().sort() 查詢所有學生,按年齡降序

db.stu.find().sort() 根據性別降序, 再根據年齡公升序

db.stu.find().sort()

統計個數

語法count()對資料進行統計總數

語法: db.集合名稱.find().count()

db.集合名稱.count()

舉例:查詢男生的個數

db.stu.find().count() db.stu.count() 統計年齡大於20的男生的個數

db.stu.count(,gender:true})

消除重複

語法distinct()對資料進行去重

db.集合名稱.distinct('去重欄位',)

舉例:查詢學生的家鄉,不能重複

db.stu.distinct('hometown') 查詢年齡大於20的學生的家鄉, 不能重複

db.stu.distinct('hometown',})

MongoDB查詢高階

投影 對返回的結果進行篩選,返回必要的字段 db.col.find 引數為字段與值,值為1表示顯示 特殊 對於 id列缺省是顯示的,如果不顯示需要明確設定為0 mongodb查詢條件除了支援使用比較運算子之外,還支援範圍 正則 邏輯運算子 分頁 排序 統計個數等 邏輯運算子 and條件 find 方...

mongodb 學習筆記 高階查詢

spring 整合mongodb 高階查詢 分組查詢 groupby groupbyresultsorg.springframework.data.mongodb.core.mongotemplate.group criteria arg0,string arg1,groupby arg2,clas...

mongoDB6 高階查詢

db.orderinfo find count db.runcommand values 結果如下 1 null,100.0,200.0 db runcommand 分組首先會按照key進行分組,每組的 每乙個文件全要執行 reduce的方法,他接收2個引數乙個是組內本條記錄,乙個是累加器資料.查出...