一,什麼是MongoDB ?
MongoDB 是由C++語言編寫的,是一個基於分佈式文件存儲的開源數據庫系統。
在高負載的情況下,添加更多的節點,可以保證服務器性能。
MongoDB 旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB 將數據存儲爲一個文檔,數據結構由鍵值(key=>value)對組成。MongoDB 文檔類似於 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
二,MongoDB 下載
你可以在mongodb官網下載該安裝包,地址爲:https://www.mongodb.com/download-center#community
- MongoDB for Windows 64-bit 適合 64 位的 Windows Server 2008 R2, Windows 7 , 及最新版本的 Window 系統。
- MongoDB for Windows 32-bit 適合 32 位的 Window 系統及最新的 Windows Vista。 32 位系統上 MongoDB 的數據庫最大爲 2GB。
- MongoDB for Windows 64-bit Legacy 適合 64 位的 Windows Vista, Windows Server 2003, 及 Windows Server 2008
根據你的系統下載 32 位或 64 位的 .msi 文件,下載後雙擊該文件,按操作提示安裝即可。我的window10用 MongoDB for Windows 64-bit
安裝過程中,你通過點擊 "Custom(自定義)" 按鈕來設置你的安裝目錄。
創建數據目錄
MongoDB將數據目錄存儲在 db 目錄下。但是這個數據目錄不會主動創建,我們在安裝完成後需要創建它。請注意,數據目錄應該放在根目錄下((如: C:\ 或者 D:\ 等 )。
現在讓我們在c盤創建一個data的目錄然後在data目錄裏創建db目錄和log目錄
三,命令行下運行 MongoDB 服務器
爲了從命令提示符下運行 MongoDB 服務器,你必須從 MongoDB 目錄的 bin 目錄中執行 mongod.exe 文件。
mongod --dbpath c:\data\db這樣就設置成功了
三,命令行下運行 MongoDB 服務器
現在進入bin運行 mongod.exe ,在運行mongo一定要保持mongod.exe 在運行
下面的如圖則表示安裝成功
這樣就能在shell下面編寫我們的sql語句了
四,mongo入門
MongoDB 創建數據庫
MongoDB 創建數據庫的語法格式如下:
use DATABASE_NAME
如果數據庫不存在,則創建數據庫,否則切換到指定數據庫。
如果你想查看所有數據庫,可以使用 show dbs 命令:
> show dbs local 0.078GB test 0.078GB剛創建的數據庫並不在數據庫的列表中, 要顯示它,我們需要向 數據庫插入一些數據
MongoDB 刪除數據庫
語法
MongoDB 刪除數據庫的語法格式如下:
db.dropDatabase()
刪除當前數據庫,默認爲 test,你可以輸入 db 命令查看當前數據庫名。
最後,我們再通過 show dbs 命令數據庫是否刪除成功:
> show dbs local 0.078GB test 0.078GB
創建集合
MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法如下:
db.COLLECTION_NAME.insert(document)
實例
以下文檔可以存儲在 MongoDB 的 runoob 數據庫 的 col 集合中:
>db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 數據庫', by: '菜鳥教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
以上實例中 col 是我們的集合名,如果該集合不在該數據庫中, MongoDB 會自動創建該集合並插入文檔。
查看已插入文檔:
> db.col.find() { "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 數據庫", "by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } >
刪除集合
集合刪除語法格式如下:
db.collectionName.drop()3.2 版本後還有以下語法可用於插入文檔:
- db.collection.insertMany():向指定集合中插入多條文檔數據,Many也可以去掉
# 插入多條數據 > var res = db.collection.insertMany([{"b": 3}, {'c': 4}]) > res { "acknowledged" : true, "insertedIds" : [ ObjectId("571a22a911a82a1d94c02337"), ObjectId("571a22a911a82a1d94c02338") ] }
MongoDB 更新文檔
MongoDB 使用 update() 和 save() 方法來更新集合中的文檔。接下來讓我們詳細來看下兩個函數的應用及其區別。
update() 方法
update() 方法用於更新已存在的文檔。語法格式如下:
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
參數說明:
- query : update的查詢條件,類似sql update查詢內where後面的。
- update : update的對象和一些更新的操作符(如$,$inc...)等,也可以理解爲sql update查詢內set後面的
- upsert : 可選,這個參數的意思是,如果不存在update的記錄,是否插入objNew,true爲插入,默認是false,不插入。
- multi : 可選,mongodb 默認是false,只更新找到的第一條記錄,如果這個參數爲true,就把按條件查出來多條記錄全部更新。
- writeConcern :可選,拋出異常的級別。
實例
我們在集合 col 中插入如下數據:
>db.col.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 數據庫', by: '菜鳥教程', url: 'http://www.runoob.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
接着我們通過 update() 方法來更新標題(title):
>db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) > db.col.find().pretty() { "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一個 Nosql 數據庫", "by" : "菜鳥教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } >
更多實例
只更新第一條記錄:
全部更新:
只添加第一條:
全部添加加進去:
全部更新:
只更新第一條記錄:
參考:http://www.runoob.com/mongodb/mongodb-tutorial.html