MongoDB安裝和使用+Webstorm可視化插件

/**僅記錄自己的學習歷程**/

準備條件:從官網安裝好相應的MongoDB版本,自選位置建立如下文件夾用來存放MongoDB數據和日誌文件


1.初始化MongoDB

在MongoDB的安裝目錄下的bin文件夾下打開命令行窗口,執行命令,初始化數據庫存儲位置。命令執行成功之後,系統就會提示等待連接。

> mongod --dbpath  D:\MongoData\db

如果使用win10的PowerShell

> .\mongod --dbpath  D:\MongoData\db


  

2.連接MongoDB數據庫

初始化MongoDB存儲位置之後,在當前目錄下新開一個命令行窗口,輸入mongo命令就可以連接上MongoDB數據庫了,輸入show dbs 進行驗證(MongoDB默認存在三個數據庫admin,local和test)

> mongo

> show dbs


  

3.以Windows Service的方式啓動MongoDB

在目前的情況下,第一個命令行窗口不能關閉,一旦關閉我們就無法使用MongoDB數據庫,爲了能更方便的使用MongoDB服務,我們可以以Windows Service的方式啓動MongoDB服務。

依舊是在當前目錄下,以管理員身份打開命令行窗口,輸入以下命令。

> mongod -dbpath "D:\MongoData\db" -logpath "D:\MongoData\log\MongoDB.log" -install -serviceName "mongodb"

此時服務已經安裝成功,運行

> net start mongodb   (開啓服務)

> net stop mongodb   (關閉服務)

  


4.使用webstorm可視化插件

(1)從Intellij插件庫中安裝Mongo插件(這款插件在JetBrains的產品中貌似是通用的)



   

(2)配置

插件安裝完成之後,設置中會多出一個Mongo Servers選項。如果你希望可以直接在webstorm中使用MongoDB的命令行工具,Path to Mongo Shell 選項一定要指向mongo.exe,而不是mongod.exe或其它。因爲指向mongod.exe,點 Test 也可以驗證通過,但是Mongo Shell是用不了的


  

(3)添加Mongo Server

右上,綠色的加號,添加Mongo Server。MongoDB數據庫初始化是沒有權限驗證,可以自己設定,初學者可以先忽略該部分。在添加服務的選項頁中Label,顧名思義添加標籤方便自己記憶,主要設置你要使用的數據庫User Database選項即可。在Mongo服務開啓的情況下,點擊 Test Connection 進行測試。


   

(4)最後

下圖就是webstorm的可視化工具,點擊紅色箭頭所指的圖標,可以打開Mongo Shell

 

   

在Mongo Shell中輸入命令 show collections,使用 Ctrl+Enter 執行命令


  

5.使用mogoose進行CRUD

(1)安裝mogoose

> npm install moogse --save

(2)使用mogoose建立連接

SQL中的數據庫表叫做table,對應MongoDB數據庫中的collection。使用mongoose新建collection時,系統會默認collection爲複數,所以當你新建一個名爲"person"的表時,在數據庫中的實際名稱爲"people"。解決的一種方法是指定collectionName,並作爲參數傳入,如下面代碼第9-10行所示。

let mongoose = require('mongoose');       //引用mongoose
let UserSchema = new mongoose.Schema({       //創建數據模板
    name: String,
    age: {type: Number, default: 1},
    sex: {type: String, default: "male"},    //指定數據類型,default選項指數據缺失時的默認值
    birth: String
});
let db = mongoose.connection;    //當使用mongoose.connect()方法連接數據庫時,數據庫的實例依附在mongoose.connection上
let collectionName='person';     
let User = mongoose.model('person', UserSchema,collectionName);     //將模板綁定到指定的collection上
mongoose.connect('mongodb://localhost:27017/test');     //連接數據庫
(3)使用mongoose進行數據庫操作
db.once('open', function () {       //監測數據庫實例的狀態
    console.log("Mongo is working");
});     
db.once('close',function () {       //監測數據庫實例的狀態
    console.log("Mongo is closed!")
});

User.remove({name:'jiwei'},function () {        //刪除操作
    console.log("Remove success!")
});
User.create({       //增加記錄
    name:'jiwei',
    age:20,
    sex:'female'
},function () {
    console.log("Insert success!")
});
User.find({name: 'wuwei'}, function (err, data) {   //查詢操作
    if (err) {
        console.log("find failure");
    } else {
        console.log("find success!");
        data.forEach((item)=>console.log(item));
    }
});
User.findOneAndUpdate({name:'wuwei'},{age:21},function () {     //查詢並更新
    console.log("Update success!")
});
User.where({name:'wuwei'}).update({$set:{age:22}},function () {     //更新操作
    console.log("Update success!");
    mongoose.disconnect(function () {       //斷開數據庫連接
        console.log("Mongo is closed!")
    });
});



發佈了25 篇原創文章 · 獲贊 23 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章