一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - MongoDB - MongoDB各種查詢操作詳解

MongoDB各種查詢操作詳解

2020-04-22 15:41MongoDB教程網 MongoDB

這篇文章主要介紹了MongoDB各種查詢操作詳解,包括比較查詢、關聯查詢、數組查詢等,需要的朋友可以參考下

一、find操作

MongoDB中使用find來進行查詢,通過指定find的第一個參數可以實現全部和部分查詢。

1、查詢全部

MongoDB各種查詢操作詳解

空的查詢文檔{}會匹配集合的全部內容。如果不指定查詢文檔,默認就是{}。

2、部分查詢

MongoDB各種查詢操作詳解

3、鍵的篩選

鍵的篩選是查詢時只返回自己感興趣的鍵值,通過指定find的第二個參數來實現。這樣可以節省傳輸的數據量,又能節省客戶端解碼文檔的時間和內存消耗。

MongoDB各種查詢操作詳解

查詢時,數據庫所關心的查詢文檔的值必須是常量。

二、查詢條件

1、比較查詢

lt,

 

lt,lte,

gt,

 

gt,gte,$ne和<,<=,>,>=,!=是一一對應的,它們可以組合起來以查找一個范圍內的值。

MongoDB各種查詢操作詳解

2、關聯查詢

in

 

innin將返回與篩選數組中所有條件都不匹配的文檔。將

in

 

innot組合可以實現$nin相同的效果。

MongoDB各種查詢操作詳解

$or用于對多個鍵做or查詢。

MongoDB各種查詢操作詳解

三、特定類型的查詢

1、null查詢

null不僅能匹配自身,還能匹配鍵不存在的文檔。

MongoDB各種查詢操作詳解

2、正則表達式

MongoDB各種查詢操作詳解

3、數組查詢

$all:通過多個元素來匹配數組。

MongoDB各種查詢操作詳解

$size:查詢指定長度的數組。

MongoDB各種查詢操作詳解

$slice:返回數組的一個子集合。

MongoDB各種查詢操作詳解

4、內嵌文檔查詢

MongoDB各種查詢操作詳解

四、$where查詢

$where查詢是MongoDB的高級查詢部分,可以執行任意JavaScript作為查詢的一部分,是其他查詢方式的一個補充。

 

whereBSONJavaScript

 

whereBSONJavaScriptwhere的表達式來運行,該過程不能利用索引,所以查詢速 度較常規查詢慢很多。如果必須使用時,可以將常規查詢作為前置過濾,能夠利用索引的話可以使用索引根據非

where使

 

where使where 對結果進行調優。另一種方式采用映射化簡-MapReduce.

五、游標

游標是很有用的東西,MongoDB數據庫使用游標來返回find的執行結果。客戶端使用游標可以對最終結果進行有效的控制,比如分頁,排序。

MongoDB各種查詢操作詳解

1、limit,skip和sort

limit:限制結果數量,限制的是上限。
skip:略過匹配到的前n個文檔,然后返回余下的文檔。skip略過過多的文檔時會產生性能問題,建議盡量避免。
sort:按照指定的鍵對文檔進行排序,1為升序,-1為降序。

MongoDB各種查詢操作詳解

2、高級查詢選項

包裝查詢:使用sort,limit或skip對最終結果進行進一步的控制。

有用的配置選項:

maxscan:integer

 

maxscan:integermin:document,查詢的開始條件。

max:document

 

max:documenthint:document,指定服務器使用哪個索引進行查詢。

explain:boolean()

 

explain:boolean()snapshot:boolean,確保查詢的結果是在查詢執行那一刻的一致快照,用于避免不一致讀取。

包裝查詢會將查詢條件包裝到一個更大的查詢文檔中,比如執行如下查詢時:

 

db.foo.find({"name":"bar"}).sort("x":1)

shell會把查詢從{"name":"bar"}轉換成{"

query":"name":"bar","orderby":{"x":1}},而不是直接將{"name":"bar"}作為查詢文檔發送給數據庫。

 

3、游標內幕
看待游標的兩種角度:客戶端的游標及客戶端游標表示的數據庫游標(服務器端)。

在服務器端,游標消耗內存和其他資源,所以在合理的情況下需要盡快釋放。服務器端導致游標終止的情況如下:

1、游標完成匹配結果的迭代時自動清除。

2、游標在客戶端已不在作用域內的情況下,驅動會向服務器發送專門的消息,讓其銷毀游標。

3、超時銷毀,可以使用immortal函數關閉游標超時時間,采用此操作一定要在迭代完結果后將游標關閉。

六、總結

使用MongoDB需要對文檔結構進行合理的設計,以滿足某些特定需求。比如隨機選取文檔,使用skip跳過隨機個文檔就沒有在文檔中加個隨機鍵,然后使用某個隨機數對文檔進行查詢高效,隨機鍵還能添加索引,效率更高。合理選擇,合理設計。

延伸 · 閱讀

精彩推薦
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongodb實現定時備份與恢復的方法教程

    Mongodb實現定時備份與恢復的方法教程

    這篇文章主要給大家介紹了Mongodb實現定時備份與恢復的方法教程,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBmongodb基本命令實例小結

    mongodb基本命令實例小結

    這篇文章主要介紹了mongodb基本命令,結合實例形式總結分析了MongoDB數據庫切換、查看、刪除、查詢等基本命令用法與操作注意事項,需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDB遷移sqlserver數據到MongoDb的方法

    遷移sqlserver數據到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數據到MongoDb的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDB分布式文檔存儲數據庫之MongoDB分片集群的問題

    分布式文檔存儲數據庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數據庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數據庫,MongoDB有一個很大的優勢——它使用js管理數據庫,所以也能夠使用js腳本進行復雜的管理——這種方法非常靈活 ...

    MongoDB教程網6982020-04-24
  • MongoDBMongoDB憑什么躋身數據庫排行前五

    MongoDB憑什么躋身數據庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDBMongoDB 內存使用情況分析

    MongoDB 內存使用情況分析

    都說 MongoDB 是個內存大戶,但是怎么知道它到底用了多少內存呢...

    MongoDB教程網10002020-09-29
主站蜘蛛池模板: 男男视频18免费网站 | 男人天堂新 | 国产福利在线观看91精品 | 91在线免费播放 | 国产精品福利一区二区亚瑟 | 欧美精品一区二区三区久久 | 纲手被comic天堂 | 狠狠色狠狠色综合系列 | 视频一区二区三区在线观看 | 午夜影院一区二区三区 | 农村妇女野外性生话免费视频 | 乳环调教 | 亚洲午夜大片 | k逼| 青柠影视在线播放观看高清 | 天天色综| 国产福利视频一区二区微拍视频 | 国产新疆成人a一片在线观看 | 久久精品人人做人人爽97 | 毛片www| 共妻高h| 国产亚洲精品网站 | 午夜亚洲一区二区福利 | 美女国内精品自产拍在线播放 | 亚洲男人精品 | 欧美yyy| 鄂州一家三口完整版免费 | 曹逼网站 | 四影虎库最新2021 | www.国产一区二区三区 | 日韩亚洲人成在线综合 | 久久这里只有精品视频9 | 香蕉tv亚洲专区在线观看 | 日本免费久久久久久久网站 | 男人天堂中文字幕 | 好性20岁| 欧美三级不卡在线观线看高清 | 啊好痛嗯轻一点免费 | 亚洲AV永久无码精品老司机蜜桃 | 日本在线看免费 | 亚洲3dxxxx动漫xxx |