MAC mongodb基本操作

安裝

brew install mongodb

配置環境

mongodb安裝完畢后,默認安裝路徑在/usr/local/Cellar/mongodb/3.4.4
進入bin目錄,相關操作命令都在此命令下

bsondump     mongod       mongoexport  mongoimport  mongoperf    mongos       mongotop
mongo        mongodump    mongofiles   mongooplog   mongorestore mongostat

為方便后續操作,可以將以上PATH路徑添加到~/.zshrc的path中

創建默認的數據庫存儲目錄/data/db,該目錄默認是不存在的,需要手動創建

sudo mkdir -p /data/db

啟動數據庫

執行以下命令:

sudo mongod

如果出現以下相關信息,說明啟動成功

2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] MongoDB starting : pid=4289 port=27017 dbpath=/data/db 64-bit host=Joey-Mac.local
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] db version v3.4.4
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] git version: 888390515874a9debd1b6c5d36559ca86b44babd
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2l  25 May 2017
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] allocator: system
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] modules: none
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] build environment:
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten]     distarch: x86_64
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2017-06-28T10:40:31.392+0800 I CONTROL  [initandlisten] options: {}
2017-06-28T10:40:31.393+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1536M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),

連接mongo

執行以下命令可以進入mongo shell

mongo

連接成功后,會提示相關連接信息

MongoDB shell version v3.4.4
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.4
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user

數據庫操作

  1. 顯示當前所有的數據庫列表,只有已存在數據的數據庫才會顯示
show dbs
  1. 切換到不同的數據庫
use local
  1. 創建數據庫
use datebaseName

查看當前的數據庫

> db
zhouyiDB
  1. 刪除當前數據庫
db.dropDatabase()

刪除成功后,會提示:

> db.dropDatabase()
{ "dropped" : "zhouyiDB", "ok" : 1 }
  1. 刪除集合(表)
    可以先查出當前數據庫下有哪些表
> show tables

執行刪除集合操作

db.collection.drop()

數據操作

  1. 插入數據(文檔)
    使用insert方法插入數據,和mysql的insert功能一致
db.COLLECTION_NAME.insert(document)

實例:

> db.col.insert({"name":"zhouyi"})
WriteResult({ "nInserted" : 1 })
  1. 查詢數據(文檔)
    使用find方法查詢數據,和mysql的select語句一致
> db.col.find()

查詢結果顯示美化pretty()函數

> db.col.find().pretty()
{
    "_id" : ObjectId("59536f22a7b98b83b2cba29d"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一個 Nosql 數據庫",
    "by" : "菜鳥教程",
    "url" : "http://www.runoob.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
{ "_id" : ObjectId("59536fd3a7b98b83b2cba29e"), "name" : "zhouyi103" }
  1. 更新數據
    對應mysql中的update
db.col.update({"name":"zhouyi"},{$set:{"name":"zhouyi103"}})
  1. 刪除數據
    對應mysql中的delete
db.col.remove({"name":"zhouyi103"})

條件操作

MongoDB中條件操作符有:

  1. (>) 大于 - $gt
  2. (<) 小于 - $lt
  3. (>=) 大于等于 - $gte
  4. (<= ) 小于等于 - $lte

實例:

db.col.find({"likes" : {$gt : 100}})

大于100小于200的數據

db.col.find({likes : {$lt :200, $gt : 100}})

查詢指定條數據(limit)

db.col.find({"likes" : {$gt : 100}}).limit(NUMBER)

查詢結果排序(sort)

sort()方法可以通過參數指定排序的字段,并使用 1 和 -1 來指定排序的方式,其中 1 為升序排列,而-1是用于降序排列

實例:

db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

mongodb監控

mongostat是mongodb自帶的狀態檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態,并輸出

mongostat
Paste_Image.png

mongo 數據類型

Paste_Image.png

mongo數據連接

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

實例

  1. 使用默認端口來連接 MongoDB 的服務
mongodb://localhost
  1. 通過 shell 連接 MongoDB 服務
mongo
  1. 使用用戶名和密碼連接登陸到指定數據庫,默認端口是:27017(可省略)
    格式如下:
mongodb://admin:123456@localhost/test
  1. 推薦使用客戶端進行連接,簡單,直觀
    客戶端:Robomongo
    下載地址:Robomongo
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,415評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,104評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,884評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,647評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,130評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,366評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,887評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,737評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,174評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,586評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,827評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,608評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,914評論 2 372

推薦閱讀更多精彩內容