日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mongodb数据查询 | Mongodb

發布時間:2025/3/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mongodb数据查询 | Mongodb 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.基本查詢①方法find():查詢db.集合名稱.find({條件文檔})②方法findOne():查詢,只返回第一個db.集合名稱.findOne({條件文檔})③方法pretty():將結果格式化db.集合名稱.find({條件文檔}).pretty() 2.比較運算符# 等于,默認是等于判斷,沒有運算符# 小于,$lt less-than# 小于或等于,$lte less-than,equal# 大于,$gt greater-than# 小于或等于,$gte greater-than,equal# 不等于,$ne not equal db.collection2.find({name:'郭靖'})db.collection2.find({age:{$gte:18}}) 3.邏輯運算符①邏輯與# 默認是邏輯與的關系# 例:查詢年齡大于或等于18,并且性別為true的學生db.collection2.find({age:{$gte:18}, gender:true})②邏輯或# 使用$or,值為數組,數組中每個元素為json# 例:查詢年齡大于18,或性別為false的學生db.collection2.find({$or:[{age:{$gt:18}},{gender:false}]})注意點:find() >> 或條件下的{} >> $or[ ] >>>> {條件a},{條件b} >> {域:{ 邏輯符判斷} }③或、與共用# 例:查詢年齡大于18或姓名是郭靖,并且性別為男生db.collection2.find( {$or:[ {age:{$gt:18} },{name:'郭靖'} ],gender:true} ) 4.范圍運算符# $in|$nin# 例:查詢年齡為18,28的學生db.collection2.find( {age:{$in:[18, 28] } } )# 這里要注意了,最大與最小都需要表中含有這幾個數 5.支持正則表達式# 使用 // 或 $regex 編寫正則表達式# 例:db.collection2.find( {name:/^黃/} )db.collection2.find( {name:{$regex:'^黃'} } ) 6.自定義查詢# 使用$where后面寫一個函數,返回滿足條件的數據# 例:查詢大于30歲的學生db.collection2.find({$where: function(){return this.age > 18}}) 7.Limit和Skip①方法limit():讀取指定數量的文檔# db.集合名稱.find().limit(NUMBER)db.collection2.find().limit(2)# 附:如果指定參數則顯示集合中的所有文檔②方法skip():用于跳過指定數量的文檔# db.集合名稱.find().skip(NUMBER)db.stu.find().skip(2)# 附:參數NUMBER表示跳過的記錄條數,默認為0③limit()與skip()一起使用# 不分先后順序;跳過指定數量文檔,再讀取指定數量的文檔# 查詢數據db.collection1.find().limit(4).skip(5)db.collection1.find().skip(5).limit(4) 8.投影--選擇字段顯示數據# ①db.集合名稱.find({},{ 字段名稱:1, ...})db.collection2.find({},{name:1, gender:1})# '1':表示顯示字段,不設置表示不顯示# ②特殊:對于_id列默認是顯示的,# 如果不顯示需要明確設置為0db.collection2.find({},{_id:0,name:1,gender:1}) 9.排序--對結果集進行排序參數1為升序排列參數-1位降序排列# db.集合名稱.find().sort({字段:1....})# --根據性別降序,再根據年齡升序db.collection2.find().sort({gender:-1,age:1}) 10.統計個數①方法count():用于統計結果集中文檔條數1.db.集合名稱.find({條件}).count()db.collection2.find({gender:true}).count()# --統計男生人數2.db.集合名稱.count({條件})db.collection2.count({age:{$gt:20}, gender:true})# --統計年齡大于20的男生人數 11.消除重復①方法distinct():對字段數據進行去重,提取--db.集合名稱.distinct('去重字段',{條件})db.collection2.distinct('hometown',{age:{$gt:18}})# 查詢年齡大于18歲的學生,來自哪些省份# 4.聚合查詢 1.基本語法--語法db.集合名稱.aggregate( {管道: {表達式} } )附:1.管道:在Unix和Linux中一般用于將當前命令的輸出結果作為下一個命令的輸入2.表達式:處理輸入文檔并輸出 2.常用表達式$sum: 計算綜合,$sum:1 表示以一倍計數$avg: 計算平均值$min: 獲取最小值$max: 獲取最大值$push: 在結果文檔中插入值到第一個文檔數據$first: 根據資源文檔的排序獲取第一個文檔數據$last: 根據資源文檔的排序獲取最后一個文檔數據 3.常用管道①$group--將集合中的文檔分組,可用于統計結果--_id表示分組的依據,使用某個字段的格式為'$字段'# 統計男生、女生的總人數db.stu.aggregate({$group:{_id:'$gender',counter:{$sum:1}}})--透視數據# 統計學生性別及學生姓名db.stu.aggregate({$group:{_id:'$gender',name:{$push:'$name'}}})--使用$$ROOT可以將文檔內容加入到結果集的數組中db.stu.aggregate({$group:{_id:'$gender',name:{$push:'$$ROOT'}}})②$match--修改輸入文檔的結構,如重命名、增加、刪除字段、創建計算結果--用于過濾數據,只輸出符合條件的文檔--使用MongoDB的標準查詢操作# 查詢年齡大于20的學生db.stu.aggregate({$match:{age:{$gt:20}}})# 查詢年齡大于20的男生、女生人數db.stu.aggregate({$match:{age:{$gt:20}}},{$group:{_id:'$gender',counter:{$sum:1}}})③$project--修改輸入文檔的結構,如重命名、增加、刪除字段、創建計算結果# 查詢學生的姓名、年齡db.stu.aggregate({$project:{_id:0,name:1,age:1}})# 查詢男生、女生人數,輸出人數db.stu.aggregate({$group:{_id:'$gender',counter:{$sum:1}}},{$project:{_id:0,counter:1}})④$sort--將輸入文檔排序后輸出# 查詢學生信息,按年齡升序b.stu.aggregate({$sort:{age:1}})# 查詢男生、女生人數,按人數降序db.stu.aggregate({$group:{_id:'$gender',counter:{$sum:1}}},{$sort:{counter:-1}})⑤$limit和$skip--$limit# 限制聚合管道返回的文檔數# 查詢2條學生信息db.stu.aggregate({$limit:2})--$skip# 跳過指定數量的文檔,并返回余下的文檔# 查詢從第3條開始的學生信息db.stu.aggregate({$skip:2})# 統計男生,女生人數,按人數升序,取第2條數據db.stu.aggregate({$group:{_id:'$gender', counter:{$sum:1}}}{$sort:{counter:1}}{$skip:1}{$limit:1})⑥$unwind字段拆分查詢--語法--文檔中一個數組字段含有多個值--根據字段下的值拆分多條--每條包含數組中的一個值--db.集合名稱.aggregate({$unwind:'$字段名稱'})# $unwind聚合方法下含有兩個屬性:path:'$字段名稱'preserveNullAndEmptyArrays:<布爾值># 不填寫屬性,默認表示<布爾值>為false# 且不用標記屬性名--構造數據db.t3.insert([{ "_id" : 1, "item" : "a", "size": [ "S", "M", "L"] },{ "_id" : 2, "item" : "b", "size" : [ ] },{ "_id" : 3, "item" : "c", "size": "M" },{ "_id" : 4, "item" : "d" },{ "_id" : 5, "item" : "e", "size" : null }])--查看查詢結果,顯示對空數組,無字段,null的文檔db.t3.aggregate( { $unwind:{ path:'$size', preserveNullAndEmptArrays:true}})--查看查詢結果,不顯示空數組,無字段,null的文檔db.t3.aggregate({$unwind: '$size'}) 相當于:db.t3.aggregate({$unwind:{path:'$size', preserveNullAndEmptyArrays:false}})

  

轉載于:https://www.cnblogs.com/rianbowymail/p/9197536.html

總結

以上是生活随笔為你收集整理的Mongodb数据查询 | Mongodb的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰最新在线 | 一本色道久久88亚洲精品综合 | 极品白嫩丰满美女无套 | 日本极品少妇 | 亚洲 欧美 自拍偷拍 | 日本中文字幕网站 | 亚洲人成网址 | 孕妇毛片 | 麻豆影视在线播放 | 精品国产视频 | 好男人资源 | 国产激情一区二区三区在线观看 | 色老头网址 | 国产又粗又长 | 永久免费看黄网站 | 秋霞av一区二区三区 | 在线免费观看视频黄 | 亚洲91久久 | 亚洲一二三四在线 | 91无限观看 | 中文字幕色站 | 成人精品区 | 欧美aaa视频| 国产精品专区在线观看 | 影音先锋中文字幕在线播放 | 91九色国产ts另类人妖 | 人妻少妇被粗大爽9797pw | 波多野吉衣久久 | 成人久久久精品乱码一区二区三区 | 亚欧毛片| 污网址在线观看 | 国产精品黑人一区二区三区 | 亚洲视频五区 | 国产精品久久久99 | 国产性色视频 | 日本午夜免费福利视频 | 久久白虎 | 九九热国产在线 | 91色片| 九九视频免费在线观看 | 日本大尺度床戏揉捏胸 | 强行挺进皇后紧窄湿润小说 | 亚洲国产成人精品久久久 | 网红日批视频 | 亚洲欧美乱综合图片区小说区 | 国产亚洲精品女人久久久久久 | 玖玖精品在线视频 | 亚洲影库| 黑人巨大精品人妻一区二区 | 99在线观看视频 | 伊人成长网| 日本伦理片在线看 | 中文字幕+乱码+中文 | 我们的生活第五季在线观看免费 | 欧美精品色哟哟 | 久久精品三级视频 | 手机看黄色| 逼逼av网站 | 精品肉丝脚一区二区三区 | 爱啪啪av| jizz日本在线观看 | 打开免费观看视频在线播放 | 日本成人精品 | 最近中文字幕在线观看 | 叶全真三级 | 亚洲播播| 国产美女无遮挡免费视频 | 久久久久久久伊人 | 日韩a级片在线观看 | 女人看黄色网 | 三级a做爰全过程 | 成人午夜福利一区二区 | 麻豆日韩 | 少妇2做爰bd在线意大利堕落 | 超碰免费看 | 欧美xxxx视频 | 91国内在线视频 | 成人黄色片视频 | 欧美xxxⅹ性欧美大片 | 亚洲色欧美另类 | 亚洲精品在线免费播放 | 欧美一区二区三区久久久 | 欧美生活一级片 | 成人免费观看视频网站 | 欧美激情精品久久 | 免费看一区二区三区 | 久久人妖| 精品人妻一区二区三区四区在线 | 日韩新片王网 | 2021狠狠干| 国产精品美女久久久久图片 | 国产成人精品视频一区二区 | 99性趣网 | 黄色国产大片 | 99午夜视频 | 日韩免费视频观看 | 欧美三极片 | 色视频国产| 粉嫩av|