MongoDb簡單使用

1.NoSQL 介紹

NoSQL(NoSQL = Not Only SQL ),意即“不僅僅是 SQL”, 它指的是非關系型的數據庫,是以 key-value形式存儲,和傳統的關系型數據庫不一樣, 不一定遵循傳統數據庫的一些基本要求,比如說遵循 SQL 標準、ACID 屬性、表結構等等。 NoSQL 最早被提出是在 20 世紀 80 年代,在當時更多是強調的是與關系數據庫區別對待, 最近這些年被提及的更多是強調協助解決大數據等相關問題。 NoSQL 在大數據時代有自己的意義。

2.NoSql 和傳統數據庫簡單對比。

非結構型數據庫。 沒有行、列的概念。 用 JSON 來存儲數據。(對于不會sql的人可以降低學習成本。)

3.MongoDb 介紹

MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品, 是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似 json 的 bson 格式,因此可以存儲比較復雜的數據類型。 Mongo 最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言, 幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。它的特點是高性能、 易部署、易使用, 存儲數據非常方便。

4.MongoDb 安裝

官網下載: https://www.mongodb.com/
我下載的是這個版本:

image.png

安裝過程可能遇到:無法安裝圖形化界面compass,導致安裝一直卡住。可以關閉窗口重新安裝,重新安裝時取消勾選安裝圖形化界面compass。

安裝完成后配置環境變量將bin路徑加入到系統的path 環境變量中。

打開 cmd 輸入 : mongo命令看看是否成功。如果出來下圖說明 mongodb 配置成功。

image.png

5. 使用 MongoDb

(1)先新建一個存放數據庫的文件夾, 注意:不能有中文和空格,建議不要放在 C 盤
(2)啟動 MongoDb 服務
mongod 開啟數據庫服務命令: mongod --dbpath D:\mongodb

image.png

(3)客戶端輸入命令連接服務端:mongo

image.png

6.建庫、建表、查、改、增、刪

(1)命令:use person
如果person數據庫存在,則進入數據庫。
如果數據庫未創建, 那么必須創建一個表并插入一個數據以來創建該數據庫。
數據庫中不能直接插入數據,只能往集合(collections)中插入數據。 不需要專門創建集合,只需要寫點語法插入數據就會創建集合student:
db.student.insert({“name”:”xiaoming”})

(2)命令:show dbs,可以看到所有的數據庫,包括剛才創建的person,前面三個是本來就有的。


image.png

(3)命令:show collections,查看數據庫中的表。還是要先進入數據庫,下圖可看到剛才創建的student表。


image.png

(4)刪除數據庫與刪除表:
刪除當前所在的數據庫:
db.dropDatabase()
刪除指定的表: db.collections_name.drop()
db.student.drop()
ps:關于如何修改數據庫名稱:https://segmentfault.com/q/1010000000694527
(5)插入(增加) 數據:
db.表名.insert({"name":"zhangsan"})

(6)查詢:先列這幾條。
1、查詢所有記錄
db.student.find()
相當于: select* from student;

2、查詢去掉后的當前聚集集合中的某列的重復數據
db.student.distinct("name")
會過濾掉 name 中的相同數據
相當于: select distict name from student;

3、查詢 age = 22 的記錄
db.student.find({"age": 22})
相當于: select * from student where age = 22。

4、匹配的數據的數量:count()
db.student.find({"age": 22}).count()

明天再寫了。今天浪費了許多時間,很難受。

更多關于查詢:

http://www.jb51.net/article/48216.htm
http://blog.csdn.net/sgear/article/details/8649550
(7)修改數據
1.查找名字叫做小明的,把年齡更改為 16 歲:
db.student.update({"name":"xiaoming"},{$set:{"age":16}})

2.更改所有匹配項目:
默認下,update()只更改第一個匹配項,但在方法傳入第三個參數為{multi: true}時,可更改所有匹配項。
db.student.update({"sex":"男"},{$set:{"age":33}},{multi: true})

3.完全替換, 不出現$set 關鍵字了: 注意

例:db.student.remove({"name": "xiaoming"});

(8)刪除數據:
db.collectionsName.remove( { "borough": "Manhattan" } )
默認下,remove()會刪除所有的匹配項。可傳入第二個參數{justOne: true}來只刪除第一個匹配項。

db.student.remove( { "age": 18}, { justOne: true } )

清空表中所有數據:
db.student.remove({})
刪除文檔是永久性的,不能撤銷,也不能恢復的。因此,在執行remove()函數前先用find()命令來查看下是否正確。

7.關于ObjectId

http://www.runoob.com/mongodb/mongodb-objectid.html
MongoDB中的文檔(對象)必須有一個"_id"鍵。這個鍵的值可以是任何類型的,默認是個ObjectId對象。

在一個集合里面,每個文檔都有唯一的"_id"值,來確保集合里面每個文檔都能被唯一標識。

MongoDB采用ObjectId,而不是其他比較常規的做法(比如自動增加的主鍵)的主要原因,因為在多個 服務器上同步自動增加主鍵值既費時又費力。
當需要通過"_id"來查找對象時,不能直接查找,要先轉化為ObjectID對象:

var ObjectID = require('mongodb').ObjectID;
var id = new ObjectID(id);
8.Nodejs 自啟動工具 supervisor

supervisor 會不停的 watch 你應用下面的所有文件,發現有文件被修改,就重新載入程序文件這樣就實現了部署,修改了程序文件后馬上就能看到變更后的結果。(但是當有錯誤時還是要重新啟動。)
(1) 首先安裝 supervisor
npm install -g supervisor
(2) 使用 supervisor 代替 node 命令啟動應用(要是命令再短點就更好了)


image.png

如有錯誤請斧正,感謝大家。

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