MongoDB
數據庫 -> 集合 -> 文檔
database -> collections -> document
mac下安裝
- 官網下載mac版本tgz文件
-
將解壓后的文件放入 /usr/local ,默認情況下在Finder中是看不到 /usr 這個目錄,可以打開Finder后按 shift + command +G 輸入 /usr/local后回車便能前往這個目錄了
image.png
image.png - 配置環(huán)境變量,打開終端,輸入“open -e .bash_profile”,在打開的文件中加入
export PATH=${PATH}:/usr/local/MongoDB/bin
Command+S保存,關閉上面的.bash_profile編輯窗口,然后在下圖中輸入"source .bash_profile"使配置生效。輸入"mongod -version",回車后如果看到下面的版本號則說明MongoDB已經成功安裝到了Mac上
image.png - 在系統(tǒng)根目錄下新建 data 文件夾,里面再建一個 db 文件夾,安裝MongoDB時并不會自動生成,需要我們手動創(chuàng)建,可以在命令行輸入
sudo mkdir -p /data/db
創(chuàng)建,也可以直接在Finder中手動新建
image.png
運行
- 終端更改data文件夾權限
MacBook-Pro:~ Yang$ sudo chown -R Yang /data/db
- 終端輸入
mongod --dbpath dir
打開或新建一個數據庫 -
打開瀏覽器,輸入localhost:27017會出現(xiàn)
image.png - 新建終端窗口,輸入
mongo
,可以對數據庫進行操作 - 要停止MongoDB的時候一定要正確的退出,不然下次再次連接數據庫會出現(xiàn)問題,使用下面的兩行代碼可以完成這一操作
use admin;
db.shutdownServer();
image.png
-
show dbs
查看所有庫 -
use dbname
如果無此數據庫則新建,如果有則進入 -
show collection
查看當前庫所有集合
操作
-
db.collectionName.insert(obj)
在名為collectionName的集合中插入一條文檔,如果集合不存在則新建該集合
導入文件
mongoimport --db [dbName] --collection [collectionName] --file [fileDir]
或者簡寫為
mongoimport -d [dbName] -c [collectionName] [fileDir]
- --db導入到的庫
- --collection導入到的集合
- --drop清空原有文檔
- --file要導入的文件(json,txt等均可)
注意:運行mongoexport和mongoimport的時候必須退出當前mongo環(huán)境,也就是ctrl+c,否則會報錯[js] SyntaxError: missing ; before statement @(shell):1:15
查詢
-
db.collectionName.find({k:v})
- 查找collectionName集合中k值為v的文檔
- 如果find沒有參數則查詢集合中所有文檔
-
db.collectionName.find({k1:v1,k2:v2})
查詢k1值為v1<b>==且(&&)==</b>k2值為v2的文檔 -
db.collectionName.find({$or:[{k1:v1},{k2:v2}]})
查詢k1值為v1<b>==或(||)==</b>k2值為v2的文檔 -
db.collectionName.find({k:{$gt:v}})
查詢k值大于v的文檔 -
db.collectionName.find({k:{$lt:v}})
查詢k值小于v的文檔
image.png -
db.collectionName.find({k:v}).limit(int1).skip(int2)
查詢結果數量為int1,跳過int2條
更新
- 修改文檔
db.collectionName.update( {k1:v1}, { $set:{k2:v2}, }, {multi: boolean} //修改所有匹配文檔為true,僅修改一次為false )
image.png - 替換文檔
將匹配的文檔替換為db.collectionName.update( {k1:v1}, { {k2:v2}, ... }, {multi: boolean} )
k2:v2...
刪除
- 刪除當前所在數據庫
db.dropDatabase()
- 刪除集合
db.collectionName.drop()
- 刪除所有匹配到的文檔
db.collectionName.remove({k:v})
- 刪除<b>==第一個==</b>匹配到的文檔
db.collectionName.remove({k:v},{justOne:true})
- 刪除<b>==第一個==</b>匹配到的文檔
- 清空集合
db.collectionName.remove({})
排序
db.collectionName.find().sort({k1:1},{k2:-1})
- 按k1來排序,如果k1的值相同,按k2來排序
- 1是升序,-1是降序