初識MongoDB
概念:
特點
相關安裝
我這邊用的是MAC版本
在使用mongodb之前,我們需要給它配置一個macOS缺失的軟件包管理器,叫做HomeBrew,鏈接是:HomeBrew
對應的,windows版本的也有一個軟件包管理器,叫做Chocolatey,鏈接是:Chocolatey
然後我們這邊主要說一下,homebrew的安裝。
點擊以上鍊接,進入到homebrew主頁,可以看到以下的界面:
它本身支持很多語言,所以你可以點擊標題下面的下拉選項框選擇簡體中文,就是我們熟悉的漢字啦,然後就想圖片中說的,複製下面那個鏈接到終端上執行,就是在進行安裝了,命令行如下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝MongoDB
安裝完HomeBrew,然後建一個文件夾中,裏面再建一個名爲database的文件夾,就可以在終端中,執行安裝mongodb的命令行了,當然了首先你要確保操作是在當前文件夾下執行的。安裝命令如下:
brew install mongod
安裝後的操作
啓動
安裝完以後,需要啓動mongoose服務器:
mongod --dbpath=拖過來的文件夾路徑/我們建好的database目錄
注意我圖中所標識的位置即可。
進入MongoDB環境
在進入環境之前,需要commond+N開啓一個新的終端頁面,然後之前那個也不要關閉,最小化放在頁面上即可。
之後,輸入命令進入mongodb環境:
mongo
注意我圖中所標識的位置即可。
MongoDB數據庫的操作
基礎操作
首先,我們先來介紹一些基本的操作命令行:
查看數據庫:show dbs
選擇要操作的數據庫:use DBNAME
查看集合:show collections
查看集合中的信息:db.COLLECTIONNAME/集合名稱.find()
查看當前操作的數據庫:db 或者 db.getName()
具體使用見下圖:
(1)創建數據庫
use 要創建的庫名
添加數據纔會創建成功:db.COLLECTION.insert(),其中id索引會自動遞增
(2)選中已存在的數據庫進行操作
選中數據庫:use name
刪除數據庫:db.dropDatabase()
創建集合:db.createCollection(“集合名”)
刪除集合:db.集合名.drop()
上面的創建和刪除我就不再操作,因爲比較懶,不想創建了,再給它刪掉,哈哈哈,好了,接下來我們一起來看看數據庫的增刪改查的操作。
MongoDB增刪改查
增加數據:insert
db.COLLECTIONNAME.insert()
這裏值得一提的是,mongodb對集合的操作允許不一一對應的操作,不像本地服務器那樣,必須一個字段對應一個值什麼的,在這裏它顯得格外的靈活。
好了,加了兩條數據之後,我們來看一下集合中到底加沒加的進去,圖片如下:
數據刪除remove
db.COLLECTIONNAME.remove({條件},{配置項/可選})
配置項:justOne:true
沒有配置項,就刪除所有符合條件的
有配置項,就刪除一項
現在我們去刪除一條:
我們刪除了集合中名爲“fafa”的那一條,這裏配置項,加不加都只刪除一項,畢竟名爲“fafa”的也就只有一條,哈哈哈
修改數據update
db.COLLECTIONNAME.update({條件},{內容($set)},{配置項})
配置項:multi:true
沒有配置項默認更新一條
有配置項更新所有符合條件的
注意:這一點與remove有點不一樣哦
查詢數據find
數據庫操作最繁瑣的就是查詢數據,因爲我們最最偉大的腦子總是能想到各種奇葩的條件去獲取需要的數據,這也是很讓人頭大的,唉~但是沒辦法啊,我們還是的好好學習,誰讓我們是程序猿呢,唉~好了,現在我們一起來啃這塊不好啃的骨頭吧。
查詢所有:
db.COLLECTIONNAME.find()
這一條我們上面已經用過很多次了,在這裏就不在贅述了。
格式化數據:
db.COLLECTIONNAME.find().pretty()
這一條一般不用它,我也就不試了,集體就是按照一定的規範去查詢數據。
條件查詢:
(1)大於小於呀什麼的
gt大於,lt小於,
大於等於gte,小於等於lte,
不等於ne,
等於:直接冒號
例如:我們查詢年齡小於30歲的
(2)以什麼什麼開頭的等等
這裏也就是說明,查詢的條件可以用正則表達式來匹配
我們來查一個名字姓張的
並且關係
用“,”逗號表示
其實就是有多個查詢條件的,比如,我們查一個姓張,且身高爲174cm的人
就這樣,我偷偷的又添加了一條174cm的張娜拉,然後取出來是這樣的
或者關係
用$or:[]表示
例如:我們找姓張的,或年紀小於30的
指定取幾條/分頁相關的查詢
db.COLLECTIONNAME.find().skip(num).limit(num) 跳過前num條,查num條的意思
當然,如果你還想再find()裏面加上其他條件也是可以的。
排序查詢/正序倒序
db.COLLECTIONNAME.find().sort({age:1})
這個的意思就是以年齡爲條件,正序查找
其中:1代表正序,-1代表倒序
查詢一條
db.COLLECTIONNAME.findOne()默認查詢集合中的第一條
查詢集合中數據的數量
db.COLLECTIONNAME.find().count()