亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB 查詢操作的實例詳解

2020-10-29 18:45:05
字體:
來源:轉載
供稿:網友

MongoDB 查詢操作的實例詳解

使用find或findOne進行查詢。并可以進行范圍查詢、數據集查詢、不等式查詢,以及其他的一些查詢。
查詢將會返回DBcursor 游標只有在你需要的時候返回文檔

針對游標返回的文檔(結果集) 進行操作 例如:忽略一定數量的結果,或者返回結果的數量,以及對結果的排序。

1.指定需要返回的鍵

有時候僅僅對文檔的某幾個鍵值感興趣,可以屏蔽返回的不感興趣的鍵值,返回感興趣的鍵值

mongos> db.blog.find({},{“name”:1}) { “_id” : ObjectId(“5659836e73c8340448fa470e”) } { “_id” : ObjectId(“565e5c0e73c8340448fa470f”) } { “_id” : ObjectId(“565f998e73c8340448fa4710”) } { “_id” : 1, “name” : “zmkzmkzmkzmkzmk” } { “_id” : 2, “name” : “zmkzmkzmkzmkzmk” } { “_id” : 3, “name” : “zmkzmkzmkzmkzmk” } { “_id” : ObjectId(“566004d173c8340448fa4712”), “name” : “zmk” }

可以這樣:

mongos> db.blog.find({},{“name”:1,”_id”:0}) { “name” : “zmkzmkzmkzmkzmk” } { “name” : “zmkzmkzmkzmkzmk” } { “name” : “zmkzmkzmkzmkzmk” } { “name” : “zmk” }

指定返回的鍵值,是查詢結果更高效。此接口可用于條件查詢,方便結果處理。

2.查詢條件

比較操作符

"$lt"、"$lte"、“$gt”,“$gte” 分別對應 <,<=,>,>=。

小貼士:在mongodb shell中定義方法的大概格式:

mongos> var insertName=function(){ … for(var i=0;i<10;i++){ … db.blog.insert({“_id”:1,”name”:”zmk”+i}) … } … } mongos> insertName() 

效果:

mongos> db.blog.find() { “_id” : 1, “name” : “zmk0” } { “_id” : 0, “name” : “zmk0” } { “_id” : 2, “name” : “zmk2” } { “_id” : 3, “name” : “zmk3” } { “_id” : 4, “name” : “zmk4” } { “_id” : 5, “name” : “zmk5” } { “_id” : 6, “name” : “zmk6” } { “_id” : 7, “name” : “zmk7” } { “_id” : 8, “name” : “zmk8” } { “_id” : 9, “name” : “zmk9” }

觀察下面的效果,find可以使用“$lt”<來查詢文件插入的時間

mongos> db.blog.insert({“_id”:10,”time”:new Date()}) WriteResult({ “nInserted” : 1 }) mongos> db.blog.find({“time”:{“$lt”:new Date()}}) { “_id” : 10, “time” : ISODate(“2015-12-05T12:08:53.469Z”) }

3.查詢數組

1.$all

應用于多個元素匹配數組,且并無順序。

mongos> db.blog.insert({“_id”:1,”fruit”:[“apple”,”banana”,”peach”]}) WriteResult({ “nInserted” : 1 }) mongos> db.blog.insert({“_id”:2,”fruit”:[“apple”,”kumquat”,”orange”]}) WriteResult({ “nInserted” : 1 }) mongos> db.blog.insert({“_id”:3,”fruit”:[“cherry”,”banana”,”apple”]}) WriteResult({ “nInserted” : 1 }) mongos> db.blog.find({“fruit”:{$all:[“apple”,”banana”]}}) { “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] } { “_id” : 3, “fruit” : [ “cherry”, “banana”, “apple” ] }

對數組進行精確匹配,可以使用key.index語法指定下標

mongos> db.blog.find({“fruit.2”:”peach”}) { “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] }

2.$size

查詢特定長度的數組。

mongos> db.blog.find({“fruit”:{$size:3}}) { “_id” : 1, “fruit” : [ “apple”, “banana”, “peach” ] } { “_id” : 2, “fruit” : [ “apple”, “kumquat”, “orange” ] } { “_id” : 3, “fruit” : [ “cherry”, “banana”, “apple” ] }

可以再存有數組的文檔中添加size鍵,每一次向指定數組中添加元素,同時增加“size”的值,自增操作非常快,對性能不影響。

3.slice

可以返回某個鍵匹配的數組元素的一個子集

mongos> db.blog.find({“fruit”:{size:3}},{"fruit":{"slice”:-2}}) { “_id” : 2, “fruit” : [ “kumquat”, “orange” ] } { “_id” : 3, “fruit” : [ “banana”, “apple” ] }

4.查詢內嵌文檔

點語法即可

mongos>db.people.find({“name.first”:”Joe”,”name.last”:”Schmoe”})

要正確的指定一組元素,而不必指定每個鍵,則需要使用$elemMatch 用來在查詢條件中不非指定匹配數組中的單個內嵌文檔。

db.blog.find({“comments”:{“$elemMatch”:{“author”:”joe”,”score”:{“$gte”:5}}}})

5.limit、skip和sort

三個方法可以組合進行分頁.

比如你有一個在線商店,有人搜索mp3,若想每頁返回50個結果,而且按照價格從高到低升序排列。

db.stock.find({“des”:”mp3”}).limit(50).sort({“price”:-1}) db.stock.find({“des”:”mp3”}).skip(50).limit(50).sort({“price”:-1}) ……

然而略過太多會導致性能問題。

解決方法:盡量避免使用skip略過大量結果。

var page1=db.stock.find({“des”:”mp3”}).limit(50).sort({“price”:-1}) var lastest=null;//解決方法,將游標最后一個文檔記錄下來,成為第二次查詢的條件的一部分 while(page1.hasNext()){ lastest=page1.next(); display(lastest); } var page2=db.stock.find({“des”:”mp3”},{“price”:{$gt:lastest.price}}).limit(50).sort({“price”:-1}) ……

隨機選取文檔

正確方法是在插入文檔時插入一個隨機值的鍵,然后按照普通查詢進行find()即可。

 感謝閱讀,如有疑問請留言或者到本站社區交流討論,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91在线观看免费观看| 亚洲一区二区三区香蕉| 欧美日韩亚洲精品内裤| 91国产视频在线播放| 午夜精品久久久久久久白皮肤| 亚洲欧美激情另类校园| 成人午夜小视频| 欧美日韩中文字幕| 色综合天天综合网国产成人网| 日韩av在线一区二区| 91精品久久久久久久久中文字幕| 亚洲精品久久久久国产| 亚洲国产成人精品电影| 国产视频一区在线| 91国产精品视频在线| 影音先锋欧美在线资源| 一区二区三区视频免费在线观看| 国产97在线|日韩| 日韩精品www| 亚洲第一页中文字幕| 亚洲电影免费观看高清完整版在线观看| 色一情一乱一区二区| 在线看福利67194| 亚洲国产一区二区三区四区| 久久亚洲国产精品成人av秋霞| 成人国产精品久久久久久亚洲| 国产在线精品自拍| 日韩中文字幕视频在线观看| 国产91精品视频在线观看| 日本精品免费一区二区三区| 国产成人精品久久二区二区| 成人女保姆的销魂服务| 欧美丰满少妇xxxxx| 亚洲电影免费观看高清完整版在线| 国外成人在线视频| 国产日韩精品电影| 国产精品成人在线| 国产精品视频永久免费播放| 日韩电影大片中文字幕| 亚洲第一男人天堂| 亚洲理论片在线观看| 精品二区三区线观看| 中日韩美女免费视频网站在线观看| 久久精品国产一区二区三区| 色无极亚洲影院| 一本大道久久加勒比香蕉| 欧美精品一二区| 欧美高清在线播放| 亚洲国产精品成人一区二区| 国产一区二区三区欧美| 国产成人精品在线视频| 久久久999精品视频| 亚洲久久久久久久久久久| 成人a在线观看| 欧美成人免费全部| 成人福利在线观看| 最近2019中文字幕第三页视频| 欧美日韩国产在线看| 久久久久久久久久久人体| 欧美日韩综合视频网址| 久久亚洲私人国产精品va| 色偷偷av一区二区三区乱| 日韩中文字幕在线免费观看| 亚洲一区二区久久| 97超级碰碰碰久久久| 国产在线观看不卡| 欧美精品videossex性护士| 亚洲国产精彩中文乱码av在线播放| 欧美日韩人人澡狠狠躁视频| 欧洲日韩成人av| 欧美在线观看www| 日韩美女福利视频| 亚洲第一中文字幕| 欧美裸体xxxxx| 亚洲成人a**站| 欧美黑人巨大精品一区二区| 少妇久久久久久| 国产日韩综合一区二区性色av| 91精品国产91久久久久久久久| 久久99久久亚洲国产| 海角国产乱辈乱精品视频| 久久男人资源视频| 国产日韩换脸av一区在线观看| 国产精品夫妻激情| 久久青草精品视频免费观看| 欧美性生交xxxxx久久久| 欧美性猛交xxxx免费看久久久| 欧美情侣性视频| 97国产一区二区精品久久呦| 国产成人亚洲综合91精品| 亚洲男人天堂2024| 一本色道久久88综合亚洲精品ⅰ| 欧美日本啪啪无遮挡网站| 成人欧美在线观看| 久久免费视频网站| 久久精品国产一区二区三区| 国产色综合天天综合网| 亚洲人成亚洲人成在线观看| 国产一区二区三区直播精品电影| 国产91精品不卡视频| 97精品久久久中文字幕免费| 色一情一乱一区二区| 色天天综合狠狠色| 欧美综合激情网| 国产69精品久久久| 啪一啪鲁一鲁2019在线视频| 亚洲天堂第一页| 色与欲影视天天看综合网| 日韩国产在线看| 69av成年福利视频| 91夜夜揉人人捏人人添红杏| 日韩的一区二区| 久久精品影视伊人网| 亚洲男人av在线| 亚洲国产日韩欧美综合久久| 亚洲成人xxx| 国产精品99久久99久久久二8| 久久精品青青大伊人av| 亚洲第一天堂av| 欧美日韩国产专区| 欧美俄罗斯乱妇| 在线日韩精品视频| 亚洲精品国精品久久99热一| 欧美激情亚洲国产| 91精品视频在线免费观看| 一级做a爰片久久毛片美女图片| 国产精品一二区| 色99之美女主播在线视频| 国产精品专区h在线观看| 精品美女久久久久久免费| 2019国产精品自在线拍国产不卡| 麻豆精品精华液| 中文字幕在线看视频国产欧美| 国产成人精品免费视频| 久久亚洲精品小早川怜子66| 欧美性猛交xxxxx免费看| 亚洲丁香婷深爱综合| 国产热re99久久6国产精品| 超碰97人人做人人爱少妇| 国产乱肥老妇国产一区二| 夜夜嗨av色综合久久久综合网| 91国产美女视频| 亚洲三级av在线| 亚洲人在线观看| 国模吧一区二区| 丁香五六月婷婷久久激情| 国产精品日韩在线观看| 欧美老女人在线视频| 亚洲白拍色综合图区| 亚洲精品美女视频| 萌白酱国产一区二区| 热久久免费视频精品| 一本一本久久a久久精品综合小说| 欧美精品www| 奇米四色中文综合久久| 亚洲影院在线看| 亚洲在线视频观看| 欧美视频专区一二在线观看| 国产女人18毛片水18精品| 久久影视电视剧免费网站清宫辞电视| 国产精品91在线| 欧美裸身视频免费观看| 亚洲高清一二三区| 国产一区二区日韩|