mongodb安裝和命令列基本操作
Mongodb
今天學習了一波mongodb,瞭解了一下三大家族,然後主要學習了mongodb的操作。
(1)安裝mongodb
跟誰網上的教程安裝方法如下:
系統Ubuntu16.04:
sudoapt-get autoremove
sudoapt-get install mongodb
然後等待一會就安裝好了
(2)mongodb的基本操作:
命令列進入就一條命令:
mongo
看到這就說明成功進入了,版本是2.6.10
接著我們可以看一下它裡面有什麼表
>show dbs
看到下面有三個表
這裡注意一下,我們裝這個mongodb的時候它會預設吃掉我們3G
現在我們新建一個庫,看下面這個我們用use新建一個庫,如果資料庫裡面沒有這個庫,他就會新建。
>use little_quincy
switchedto db little_quincy
有一點就是如果這個庫裡面沒有東西,我們去看的時候他是不顯示這個庫的。
然後我們新建集合,在mongodb裡面我們一般都是用collection來表示表的,也就是集合
>db.createCollection("little_quincy");
{"ok" : 1 }
我們新建一個表,看下面的返回值證明成功了
來看看這個表
>show collections;
little_quincy
system.indexes
可以看到表已經有了,system是索引。
看第一個操作,插入:
>db.little_quincy.insert({"name":"quincy"});
WriteResult({"nInserted" : 1 })
成功插入了。
然後我們在來幾波騷操作
>db.little_quincy.find() – 查詢操作,可以看看錶裡面都有點啥
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }
>db.little_quincy.find().pretty();
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" } –美麗的查詢操作,現在是看不出哪比較美了,但是資料多了,pretty會增加一個換行,使得它看著很美
>db.little_quincy.insert({"id":"quincy","name":"quincy"});– 在插入點資料,
WriteResult({"nInserted" : 1 })
>db.little_quincy.find()
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" } –MongoDB從一開始就設計用來作為分散式資料庫,處理多個節點是一個核心要求。ObjectId型別在分片環境中容易生成得多。
{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}
我們可以看到_id也可以是別的值
>db.little_quincy.insert({"_id":"quincy","name":"quincy"});
WriteResult({"nInserted" : 1 })
>db.little_quincy.find()
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }
{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}
{"_id" : "quincy", "name" : "quincy"}
有沒有注意到,這個資料庫沒有定義型別,沒有限制多少想插就插,最後按key->來實現查詢
按key:value查詢
>db.little_quincy.find({"name":"quincy"});
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }
{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}
{"_id" : "quincy", "name" : "quincy"}
下面這個操作是找出年齡小於23的人,先插入年齡
>db.little_quincy.insert({"age":22,"name":"quincy"});
WriteResult({"nInserted" : 1 })
>db.little_quincy.find({"age":{$lt:23}});
{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }
這個操作是按正則去尋找模糊匹配
>db.little_quincy.find({"name":/quincy/});
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy" }
{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}
{"_id" : "quincy", "name" : "quincy"}
{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }
基礎操作之更新
>db.little_quincy.update({"name":"quincy"},{$set:{"age":23}},false,false);
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })
一定要注意不同的括號,容易踩坑
基礎之移除操作
按照鍵值關係移除
>db.little_quincy.remove({"_id":"quincy"})
WriteResult({"nRemoved" : 1 })
結果:
>db.little_quincy.find();
{"_id" : ObjectId("5916b4c364a2a21938b93dcc"),"id" : "quincy", "name" : "quincy"}
{"_id" : ObjectId("5916b58264a2a21938b93dcd"),"age" : 22, "name" : "quincy" }
{"_id" : ObjectId("5916b43864a2a21938b93dcb"),"name" : "quincy", "age" : 23 }
刪表
>db.little_quincy.drop();
true
刪庫
>db.dropDatabase();
{"dropped" : "little_quincy", "ok" : 1 }
最終結果:
>show dbs;
admin (empty)
local 0.078GB
test 0.078GB
練習時間:
>use shihao
switchedto db shihao
>show collections;
>db.creatCollection("xiaohao");
2017-05-13T15:47:03.888+0800TypeError: Property 'creatCollection' of object shihao is not afunction
>db.createCollection("xiaohao");
{"ok" : 1 }
>db.shihao.insert({"name":"chenlebo","age":20,"sex":"man","job":"NO.1android"});
WriteResult({"nInserted" : 1 })
>db.shihao.find()
{"_id" : ObjectId("5916bbc864a2a21938b93dce"),"name" : "chenlebo", "age" : 20, "sex": "man", "job" : "NO.1 android" }
>db.shihao.insert({"name":"wujia","age":18,"sex":"man","job":"student"});
WriteResult({"nInserted" : 1 })
>db.shihao.insert({"name":"waterwater","age":18,"sex":"man","job":"kingof the technology"});
WriteResult({"nInserted" : 1 })
>db.shihao.insert({"name":"waterwater"},{$set:{"age":50}},false,false);
WriteResult({"nInserted" : 1 })
>db.shihao.remove({"name":"waterwater"});
WriteResult({"nRemoved" : 2 })
>db.shihao.update({"name":"chenlebo"},{$set:{"age":50}},false,false);
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified": 1 })
>db.shihao.find();
{"_id" : ObjectId("5916bbc864a2a21938b93dce"),"name" : "chenlebo", "age" : 50, "sex": "man", "job" : "NO.1 android" }
{"_id" : ObjectId("5916bc3264a2a21938b93dcf"),"name" : "wujiacheng", "age" : 18,"sex" : "man", "job" : "student"}
>db.xiaohao.drop();
true
總結完畢!