題外話:儘管有很多人貼出了 《我不用mongodb的十大理由》 等系列文章,可是 NoSQL 的發展不會所以而止步, mongodb 是 NoSQL 的典型表明,樓主仍是抱樂觀態度的,有人討厭是好事,儘管mongodb依然在不斷的更新中……html
MacBook Pro : OS X 10.9.5 (13F34)
Mongodb : 2.6.0node
A: 包管理工具 自動化安裝 [當心被牆,下載中建議去煮幾杯咖啡]git
$ brew install mongodb //記得能夠先更新 homebrew //$ brew update
安裝完成後,啓動MongoDbgithub
mongod —config /usr/local/etc/mongod.conf
B: 文件方式 解壓安裝 [百度網盤分分鐘搞定]mongodb
點擊下載: Mongodb OSX 2.6.0 zip 壓縮包shell
解壓到隨意位置, 好比 /usr/local/var/www/mongodb-osx-x86_64-3.0.0/
進入 mongodb-osx…… 目錄建立兩個文件夾 data/db (數據)和 data/log (日誌)數據庫
而後輕鬆啓動,好比:windows
$ cd /usr/local/var/www/mongodb-osx-x86_64-3.0.0/bin/ $ mongod --dbpath "/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db" …… …… 2015-05-18T13:49:15.660+0800 [initandlisten] journal dir=/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db/journal 2015-05-18T13:49:15.660+0800 [initandlisten] recover : no journal files present, no recovery needed 2015-05-18T13:49:15.843+0800 [initandlisten] waiting for connections on port 27017
啓動成功,端口號是 27017 成功, 大多數人到這裏應該就沒有下文了~ ,(好比,端口怎麼改? 接着看……)api
例子:bash
mongod --dbpath="安裝路徑/data/mongodb" --logpath="安裝路徑/data/mongodb/logs/mongodb.log" --logappend --auth --port=27017 --fork
沒事,你先試一下,我等你 ^_^
解釋:
mongod : 啓動程序命令 --dbpath : 的數據庫存放路徑 --logpath : 的日誌文件路徑 --logappend : 以追加方式,寫日誌文件 --auth : 是否進行用戶認證,加上後,MongoDB會使用用戶認證方式登陸。 --port : 端口號,能夠自定義,默認 27017 --fork : 服務是否之後臺運行的方式運行 --bind_ip : 限制特定IP地址訪問
進入到 bin 目錄執行 mongo 就能夠,好比樓主的:
$ cd /usr/local/var/www/mongodb-osx-x86_64-3.0.0/bin/&&mongo
接下來能夠熟悉下操做一些經常使用指令,好比增刪改查「CURD」,這裏就不一一列舉了,傳送門: mongodb for windows
這裏說一下如何 添加登陸權限 ,
先貼一段 code:
> show dbs admin (empty) hi-blog 0.078GB local 0.078GB session 0.078GB > use hi-blog switched to db hi-blog > show collections apikeys classifys system.indexes users > db.addUser('root','root123') WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead Successfully added user: { "user" : "root", "roles" : [ "dbOwner" ] } > show collections 2015-05-18T14:24:36.802+0800 error: { "$err" : "not authorized for query on hi-blog.system.namespaces", "code" : 13 } at src/mongo/shell/query.js:131 > db.auth('root','root123') 1 > show collections apikeys classifys system.indexes users > show users { "_id" : "hi-blog.root", "user" : "root", "db" : "hi-blog", "roles" : [ { "role" : "dbOwner", "db" : "hi-blog" } ] } > _
以上先展現了數據庫的「表」(databases)而後切換到了某個「集」(collections)而後再看下這個集合下的數據「行」(document),在沒有添加(addUser)管理員前 collections 隨便看,一旦添加了 管理員 則須要認證後(auth)才能查看
[注意:大前提是在啓動mongodb服務時添加了 --auth 用戶認證參數]
咱們重啓一下 mongo 服務,例如樓主的:
$ mongod --dbpath "/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db" --port=27017 --auth //添加auth命令就開啓了登陸權限
另外打開一個 bash 窗口:
$ mongo -uroot -proot123 127.0.0.1:27017/hi-blog //u 後帶用戶名 p 後帶密碼
連接成功~
注:對admin設置管理帳號則登陸後能夠操做整個數據庫,對 A 數據設置管理帳號則登陸後只能操做A數據庫,例如 以上連接了 hi-blog 數據庫,若想 show dbs
則報錯。 show collections
固然正常。
相似的 輕量級的nodejs mongodb驅動有不少,好比:
mongoose, node-mongodb-native, mongoskin, node-mongolian, mongous, mongojs
他們的關係聽說是這樣:
這裏以mongoose爲例,舉例登陸驗證
mongodb://你的帳號:密碼@host ip:端口號/設置登陸權限的數據庫 mongodb://admin:123456@192.168.1.100:27018/yourdb
這仍是很輕鬆的,什麼?上下文也要?以下:
//mongodb操做.js var mongoose = require('mongoose'), config = require('./../db/config'); db = mongoose.createConnection(); //設置用戶名密碼端口數據庫 db.openSet(config.dbLogin); // 連接錯誤 db.on('error', function(error) { console.log(error); }); …… //config.js //須要登陸的mongodb var dbLogin = 'mongodb://admin:123456@192.168.1.100:27018/yourdb'; …… exports.dbLogin = dbLogin; ……
完