前言
前幾篇,老玩家繞道即可,新手晚上閑着也是蛋疼,不如把命令敲一邊,這樣你就會對MongoDB有一定的掌握啦。如果沒有安裝MongoDB去看我的上一篇博客 MongoDB下載安裝與簡單增刪改查
前奏:啟動mongdb數據庫服務,並進入shell界面
> cmd
> cd C:\Program Files\MongoDB\bin --進入mongdb安裝文件的bin目錄下。
> net start mongoDB; --開啟mongoDB數據庫服務
> mongo --進入shell界面
常用命令
> show dbs -- 查看數據庫列表
> use admin --創建admin數據庫,如果存在admin數據庫則使用admin數據庫
> db ---顯示當前使用的數據庫名稱
> 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:
1、p={name:"張龍豪",age:18} 這個不是規范的json格式,使用這種類似javascript語法,對象會自動補全為規范的json格式{"name":"張龍豪","age":18}.
2、我在這里插入2條數據,一條是insert語法,一條是save語法,這里的insert與save是一樣的功能。
Note:這里我主要用啦一個for語法,循環插入啦4條數據,是不是有點小激動。哈哈,mongodb就是這么任性。
Note:這里是吧查詢出來的
1、while:作為程序員應該都不陌生他是個循環。
2、hasNext: cursor集合遍歷,是否還有數據。
3、printjson:輸出集合中的文檔
4、next:當前文檔,並向下遍歷。
Note:forEach循環輸入,必須定義一個函數供每個游標元素調用。
Note:游標也可以當作數組來用。
Note:游標轉換為真實的數組類型,使用。
Note:findOne,返回結果集中的第一條數據。limit(3),返回結果集中的前三條數據。
MongoDB中的高級查詢
面向文檔的NoSql數據庫重要解決的問題不是高性能的並發讀寫問題,而是保證海量數據存儲的同時,具有比一般數據庫更加良好的查詢性能。
Note:條件操作符號: > 、 < 、 >= 、<=
1、 $gt //大於 > ,$lt //小於 < ,$gte //大於等於 >= ,$lte //小於等於
2、{"filed":{$op,value}} //filed字段 ,$op條件操作符號,value值。
3、{"age":{$gt:1}} : person集合中年齡大於1的所有數據文檔
Note:$all匹配所有,類似t-sql中的in,但是t-sql中的in是滿足括號里面的任何一個都能出數據,而mongodb中的$all則必須滿足[]中的所有值。
1、{age:{$all:[7,9]}}:age數組中只要有7和9就滿足條件。如果只有7,沒有9則不符合條件。
Note:$exists判斷字段是否存在,(true/false)
1、{city:{$exists:true}}: 集合中存在city這個字段的數據
Note:$mod取模運算。
1、{age:{$mod:[7,6]}}:集合中模7余6的數據
Note:$ne不等於
Note:$in包含,$nin不包含。跟t-sql中的in,not in一樣。
1、{age:{$in:[10,11]}}:如果age是數組的話,只要數組包含in中條件的任何一條數據,都能被檢索出來。不是數組,則只要滿足in中的任何一個條件數據,也可以被檢索出來。
Note:數組元素個數。
1、{age:{$size:4}}:age數組元素個數為4的數據結果集。
Note:$not正則匹配,不包含以張開頭的數據。
Note:skip,limit,sort,count
1、skip(2):從數據集的第二條開始查詢
2、limit(2) : 依次查出2條數據。
3、sort({age:1}) : 1.正序查詢,-1倒敘查詢。
4、count():結果集總數。