MongoDB高級查詢詳細

前言

前幾篇,老玩家繞道便可,新手晚上閒着也是蛋疼,不如把命令敲一邊,這樣你就會對MongoDB有必定的掌握啦。若是沒有安裝MongoDB去看個人上一篇博客  MongoDB下載安裝與簡單增刪改查 javascript

前奏:啓動mongdb數據庫服務,並進入shell界面html

> cmdjava

> cd C:\Program Files\MongoDB\bin  --進入mongdb安裝文件的bin目錄下。程序員

> net start mongoDB;  --開啓mongoDB數據庫服務sql

> mongo   --進入shell界面mongodb

經常使用命令

> show dbs    -- 查看數據庫列表shell

> use admin   --建立admin數據庫,若是存在admin數據庫則使用admin數據庫數據庫

> db   ---顯示當前使用的數據庫名稱json

> db.getName()  ---顯示當前使用的數據庫名稱數組

> db.dropDatabase()  --刪當前使用的數據庫

> db.repairDatabase()  --修復當前數據庫

> db.version()   --當前數據庫版本

> db.getMongo()  --查看當前數據庫的連接機器地址 

> db.stats() 顯示當前數據庫狀態,包含數據庫名稱,集合個數,當前數據庫大小 ...

> db.getCollectionNames()   --查看數據庫中有那些個集合(表)

> show collections    --查看數據庫中有那些個集合(表)

> db.person.drop()  --刪除當前集合(表)person

MongoDB接入Javascrip風格語法,for,while,next,hasNext,forEach,toArray,findOne,limit

Note:

一、p={name:"張龍豪",age:18} 這個不是規範的json格式,使用這種相似javascript語法,對象會自動補全爲規範的json格式{"name":"張龍豪","age":18}.

二、我在這裏插入2條數據,一條是insert語法,一條是save語法,這裏的insert與save是同樣的功能。

Note:這裏我主要用啦一個for語法,循環插入啦4條數據,是否是有點小激動。哈哈,mongodb就是這麼任性。

Note:這裏是吧查詢出來的

一、while:做爲程序員應該都不陌生他是個循環。

二、hasNext: cursor集合遍歷,是否還有數據。

三、printjson:輸出集合中的文檔

四、next:當前文檔,並向下遍歷。

Note:forEach循環輸入,必須定義一個函數供每一個遊標元素調用。

Note:遊標也能夠看成數組來用。

Note:遊標轉換爲真實的數組類型,使用。

Note:findOne,返回結果集中的第一條數據。limit(3),返回結果集中的前三條數據。

MongoDB中的高級查詢

面向文檔的NoSql數據庫重要解決的問題不是高性能的併發讀寫問題,而是保證海量數據存儲的同時,具備比通常數據庫更加良好的查詢性能。

Note:條件操做符號: > 、 < 、 >= 、<= 

一、 $gt //大於 > ,$lt //小於 < ,$gte //大於等於 >= ,$lte //小於等於

二、{"filed":{$op,value}}  //filed字段 ,$op條件操做符號,value值。

三、{"age":{$gt:1}} : person集合中年齡大於1的全部數據文檔

 Note:$all匹配全部,相似t-sql中的in,可是t-sql中的in是知足括號裏面的任何一個都能出數據,而mongodb中的$all則必須知足[]中的全部值。

一、{age:{$all:[7,9]}}:age數組中只要有7和9就知足條件。若是隻有7,沒有9則不符合條件。

Note:$exists判斷字段是否存在,(true/false)

一、{city:{$exists:true}}: 集合中存在city這個字段的數據

Note:$mod取模運算。

一、{age:{$mod:[7,6]}}:集合中模7餘6的數據

Note:$ne不等於

Note:$in包含,$nin不包含。跟t-sql中的in,not in同樣。

一、{age:{$in:[10,11]}}:若是age是數組的話,只要數組包含in中條件的任何一條數據,都能被檢索出來。不是數組,則只要知足in中的任何一個條件數據,也能夠被檢索出來。

Note:數組元素個數。

一、{age:{$size:4}}:age數組元素個數爲4的數據結果集。

Note:$not正則匹配,不包含以張開頭的數據。

Note:skip,limit,sort,count

一、skip(2):從數據集的第二條開始查詢

二、limit(2) : 依次查出2條數據。

三、sort({age:1}) : 1.正序查詢,-1倒敘查詢。

四、count():結果集總數。

相關文章
相關標籤/搜索