學習 NodeJS 8-MongoDB介紹

8 MongoDB介紹

8.1 windows平臺下MongoDB安裝和環境搭建

MongoDB 是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。

MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。

MongoDB優點:

  1. 高可拓展性
  2. 分佈式存儲
  3. 低成本
  4. 結構靈活 

 NoSQL(not only sql)優點:

  1. 高可擴展性
  2. 分佈式計算
  3. 低成本
  4. 架構的靈活性,半結構化數據
  5. 沒有複雜的關係

缺點:1、沒有標準化;2、有限的查詢功能(到目前爲止);3、最終一致是不直觀的程序。

  • 下載安裝包或者壓縮包
  • 添加db存儲和日誌存儲文件夾(data,etc/mongo.conf,logs/mongodb.log)
  • 添加服務、配置環境變量、啓動MongoDB 

bin目錄下執行可執行cmd:mongod --dbpath c:\MongoDB\data --journal

mongo.conf文件配置:

# 數據庫路徑
dbpath = G:\Learning\MongoDB\data\
# 日誌輸出文件路徑
logpath = G:\Learning\MongoDB\logs\mongodb.log
# 錯誤日誌採用追加模式,配置這個選項後MongoDB的日誌會追加到現有的日誌文件,而不是重新創建一個新文件
logappend = true
# 啓用日誌文件,默認啓動
journal = true
# 這個選項可以過濾掉一些無用的日誌信息,若需要調試使用請設置爲false
quiet = false
# 端口號 默認27017
port = 27017
# 指定存儲引擎(默認先不加此引擎,如果報錯了,大家都加進去)針對win7 32位的系統
# storageEngine = mmapv1
# http配置(坑:在3.6版本之後就沒有這個參數了)
# httpinterface = true

配置完conf之後bin目錄下啓動cmd:mongod --config G:\Learning\MongoDB\etc\mongo.conf 

坑:http配置:httpinterface = true(在3.6版本之後就沒有這個參數了)

將服務加載到windows的service服務下:mongod --config G:\Learning\MongoDB\etc\mongo.conf --install --serviceName "MongoDB"  (--serviceName可以不要的)

在這裏,我配置了環境變量,然後添加到windows服務裏,每當我點擊啓動不是報“找不到指定文件”就是什麼“……100”,搜索了一萬種方法也是沒能解決,最終我選擇卸載重新安裝再配置。卸載的時候直接打開我們安裝時的msi,他可以幫助我們卸載,它卸載的不完全,所以我們得把文件夾裏的內容刪掉,再重新安裝。最終,我本打算去配置service服務,發現裏面已經有MongoDBService了,而且已經啓動了,what?什麼鬼?然後我趕緊打開網頁測試了一下localhost:27017,完全運行正常!

只能繼續學習吧!

MongoVue:cmd mongo

  1. show dbs
  2. use imoocmall 
  3. db.goods.insert({id:101,name:"mi6",salePrice:2499})

8.2 Linux平臺下的搭建

  • 下載安裝包或者壓縮包
  • 上傳服務器,解壓縮
  • 添加db存儲和日誌存儲文件夾
  1. scp ……tgz [email protected]:/
  2. tar -zxvf ……tgz(解壓)
  3. mkdir mongodb
  4. mv …… mongodb(把文件裝進)
  5. 創建data、etc\mongo.conf、logs\mongodb.log
  6. 配置mongodb.conf

8.3 給MongoDB創建用戶

          >use admin
         >db.createUser({user:"admin",pwd:"admin",roles:["root"]})
         >db.auth("admin","admin") 

         >db.createUser({user:"admin",pwd:"123456",roles:[{role:"dbOwner",db:"test"}]})

         >db.createUser({user:"roots",pwd:"666666",roles:[{role:"dbOwner",db:"dumall"}]})  

     注:在3.0以後免費的MongoVue很多功能就不支持了,所以要用Studio-3T(不是免費的)

  1. 創建管理員
  2. 授權認證
  3. 給使用的數據庫添加用戶

8.4 MongoDB基本語法

  • 數據庫對比:
SQL術語/概念 MongoDB術語/概念 解釋/說明
database database 數據庫
table collection 數據庫表/集合
row document 數據記錄行/文檔
column field 數據字段/域
index index 索引
table joins   表連接,MongoDB不支持
primary key primary key 主鍵,MongoDB自動將_id字段設置爲主鍵

 >show dbs

>use demo

>db.createCollection("user")

>db.users.insert({id:123,name:"hello"})

>show collections

>db.dropDatabase()

>db.user.drop()

>db.user.insert({userId:101,userName:"Jack",userAge:28,class:{name:"imooc",num:10}}) 

>db.user.update({userName:'Jack'},{$set:{userAge:30}}) 

>db.user.update({userName:'Jack'},{$set:{'class.name':'imooc-test'}})

>db.user.remove({userName:"jack"}) 

>db.user.find()              查詢所有數據

>db.user.find().pretty()  對查到的數據格式化 

>db.user.findOne()        查第一條數據

>db.user.find({userName:'Jack'}) 

>db.user.find({userAge:{$gt:20}})  (大於:$gt,小於:$lt,小於等於:$lte,大於等於:$gte,不等於:$ne,等於:$eq或者:)

  • 插入文檔
  • 更新文檔
  • 刪除文檔
  • 查詢文檔

8.5 表數據設計和插入

export、import

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章