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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3.MongoDB数据查询

發(fā)布時(shí)間:2024/7/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3.MongoDB数据查询 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)查詢

?

基本查詢

方法find():查詢:db.集合名稱.find({條件文檔})
方法findOne():查詢,只返回第一個(gè):db.集合名稱.findOne({條件文檔})
方法pretty():將結(jié)果格式化:db.集合名稱.find({條件文檔}).pretty()

比較運(yùn)算符

  • 等于,默認(rèn)是等于判斷,沒有運(yùn)算符
  • 小于$lt、小于或等于$lte、大于$gt、大于或等于$gte、不等于$ne
  • 例1:查詢名稱等于'郭靖'的學(xué)生

db.stu.find({name:'郭靖'})

  • 例2:查詢年齡大于或等于18的學(xué)生

db.stu.find({age:{$gte:18}})

邏輯運(yùn)算符

  • 查詢時(shí)可以有多個(gè)條件,多個(gè)條件之間需要通過邏輯運(yùn)算符連接
  • 邏輯與:默認(rèn)是邏輯與的關(guān)系
  • 例3:查詢年齡大于或等于18,并且性別為true的學(xué)生

db.stu.find({age:{$gte:18},gender:true})

  • 邏輯或:使用$or,值為數(shù)組,數(shù)組中每個(gè)元素為json
  • 例4:查詢年齡大于18,或性別為false的學(xué)生

db.stu.find({$or:[{age:{$gt:18}},{gender:false}]})

  • and和or一起使用
  • 例5:查詢年齡大于18或姓名是郭靖,并且性別為男生

db.stu.find({$or:[{age:{$gte:18}},{gender:true}],name:'gj'})

范圍運(yùn)算符

  • 使用"$in","$nin" 判斷是否在某個(gè)范圍內(nèi)
  • 例6:查詢年齡為18、28的學(xué)生

db.stu.find({age:{$in:[18,28]}})

支持正則表達(dá)式

使用//或$regex編寫正則表達(dá)式

  • 例7:查詢姓黃的學(xué)生

db.stu.find({name:/^/})
db.stu.find({name:{$regex:'^黃'}})

自定義查詢

  • 使用$where后面寫一個(gè)函數(shù),返回滿足條件的數(shù)據(jù)
  • 例7:查詢年齡大于30的學(xué)生

db.stu.find({
??? $where:function() {
??????? return this.age>30;
??? }
})

?

?

Limit

  • 方法limit():用于讀取指定數(shù)量的文檔
  • 語法:db.集合名稱.find().limit(NUMBER)
  • 參數(shù)NUMBER表示要獲取文檔的條數(shù)
  • 如果沒有指定參數(shù)則顯示集合中的所有文檔

?

skip

  • 方法skip():用于跳過指定數(shù)量的文檔
  • 語法:db.集合名稱.find().skip(NUMBER)
    參數(shù)NUMBER表示跳過的記錄條數(shù),默認(rèn)值為0
  • 方法limit()和skip()可以一起使用,不分先后順序

?

投影

在查詢到的返回結(jié)果中,只選擇必要的字段,而不是選擇一個(gè)文檔的整個(gè)字段

參數(shù)為字段與值,值為1表示顯示,值為0不顯示

db.集合名稱.find({},{字段名稱:1,...})

  • 對(duì)于需要顯示的字段,設(shè)置為1即可,不設(shè)置即為不顯示
  • 特殊:對(duì)于_id列默認(rèn)是顯示的,如果不顯示需要明確設(shè)置為0

?

排序

  • 方法sort(),用于對(duì)結(jié)果集進(jìn)行排序
  • 語法:db.集合名稱.find().sort({字段:1,...})
    參數(shù)1為升序排列,參數(shù)-1為降序排列

?

統(tǒng)計(jì)個(gè)數(shù)

  • 方法count()用于統(tǒng)計(jì)結(jié)果集中文檔條數(shù)
  • 語法:db.集合名稱.find({條件}).count()
    也可以與為:db.集合名稱.count({條件})

?

消除重復(fù)

  • 方法distinct()對(duì)數(shù)據(jù)進(jìn)行去重
  • 語法:db.集合名稱.distinct('去重字段',{條件})

?

?

?


總結(jié)

以上是生活随笔為你收集整理的3.MongoDB数据查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。