MongoDB安裝和操作

node.jpeg

MongoDB的安裝


  • 進(jìn)入 /usr/local目錄
    cd /usr/local

  • 下載 sudo curl -O + 網(wǎng)址 其中網(wǎng)址可以在官網(wǎng)上 復(fù)制
    sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-3.4.2.tgz

  • 解壓 下載文件
    sudo tar -zxvf mongodb-osx-x86_64-3.4.2.tgz

  • 把解壓的文件 【mongodb-osx-x86_64-3.4.2】重新命名為mongodb

sudo mv mongodb-osx-x86_64-3.4.2 mongodb

  • 設(shè)置路徑

export PATH=/usr/local/mongodb/bin:$PATH

流程完后

安裝完成后

  • 注意 在第一次執(zhí)行mongod命令之前 需要自己手動創(chuàng)建一個(gè)/data/db文件目錄,這是因?yàn)?code>mongodb在使用執(zhí)行mongod命令時(shí),會把所在盤符根目錄下的/data/db作為數(shù)據(jù)儲存的目錄,如果你cd的目錄中沒有/data/db,在執(zhí)行會出現(xiàn)shutting down with code:100這樣的提示,就表示執(zhí)行成功

  • 運(yùn)行測試
# 進(jìn)入根目錄
cd /
# 創(chuàng)建 /data/db目錄  sudo(獲取管理員權(quán)限)
sudo mkdir -p /data/db

#執(zhí)行 mongod 命令

sudo mongod

當(dāng)出現(xiàn) waiting for connections on port 27017時(shí),說明已經(jīng)執(zhí)行成功

若是沒有啟動成功??赡苁菦]有全局路徑

 sudo mongod
# 如果沒有創(chuàng)建全局路徑 PATH,需要進(jìn)入以下目錄
cd /usr/local/mongodb/bin
sudo ./mongod

在打開一個(gè)新的終端 執(zhí)行下面 2行命令

$ cd /usr/local/mongodb/bin 
$ ./mongo

  • 設(shè)置全局變量

# 打開終端
# 定位到主目錄,輸入:cd ~
# 創(chuàng)建一個(gè)bash_profile文件,輸入:touch .bash_profile
#編輯文件, open .bash_profile
#在文件中輸入路徑 export PATH=${PATH}:<文件目錄>(文件目錄就是你想要替換的路徑)
# 重啟終端

這樣全局路徑設(shè)置完畢,只要執(zhí)行mongo就可以啟動數(shù)據(jù)服務(wù)


  • 常用的命令

mongo命令是 默認(rèn)鏈接本機(jī)的MongoDB服務(wù)
exit命令 是 退出鏈接服務(wù)
show dbs命令是 查看顯示 數(shù)據(jù)庫
use 數(shù)據(jù)庫名稱 切換到指定的數(shù)據(jù)庫,若是沒有這個(gè)數(shù)據(jù)庫,會新建這個(gè)數(shù)據(jù)庫
db 查看當(dāng)前操作的數(shù)據(jù)庫
show collections 查看集合
db.集合名稱.find()查看集合數(shù)據(jù)內(nèi)容

Node操作MongoDB數(shù)據(jù)

  • 使用第三方mongoose

    • npm init -y 添加package.json文件
    • npm install mongoose 安裝mongoose
  • 使用引包

/1,引包

 var mongoose = require("mongoose");

//2,連接數(shù)據(jù)庫

mongoose.connect("mongodb://localhost/test",{useNewUrlParser: true });

//3,設(shè)計(jì)表結(jié)構(gòu)

var Schema = mongoose.Schema;

// 字段名稱就是表結(jié)構(gòu)中的屬性名稱
// 約束的目的是保證數(shù)據(jù)的完整性,防止一些臟數(shù)據(jù)

var userSchema = new Schema({

    userName:{
        type:String,
        required:true //必須有
    },
    password:{
        type:String,
        required:true
    },
    email:{
        type:String
    }

});
//4,創(chuàng)建模型  將結(jié)構(gòu)發(fā)布為model

// 第一個(gè)參數(shù):傳入一個(gè) 大寫的名詞數(shù)字字符串用來表示你的數(shù)據(jù)庫名稱 mongoose會自動將大寫名詞字符串生成 小寫復(fù)數(shù) 的集合名稱(users)

//第二個(gè)參數(shù) 是 結(jié)構(gòu)

//返回值就是 模型對象
var User = mongoose.model("User",userSchema)

//5,根據(jù) 模型對象 對數(shù)據(jù)操作


  • 添加數(shù)據(jù)
//5,根據(jù) 模型對象 對數(shù)據(jù)操作
var cc = new User({
      userName:"CC",
      password:"123456",
      email:"169@qq.com"
  });


// 添加數(shù)據(jù)
cc.save(function (error,data) {

    if (error){
        console.log("保存失敗");
    }else {
        console.log("保存成功");
        console.log(data);
    }
});
  • 查詢數(shù)據(jù)
/查詢 數(shù)據(jù)
// 第一個(gè)參數(shù)是查詢條件 是一個(gè)對象 {name:"CC"} 意思是查詢條件是 名字是CC的數(shù)據(jù)

// 第一個(gè)參數(shù)不寫是查詢所有的數(shù)據(jù)
User.find(function (err,data) {

    if (err){

        console.log("查詢失敗");

    }else {
        console.log("查詢成功");
        console.log(data);
    }
})

  • //刪除數(shù)據(jù)
User.remove({name:"CC"},function (err,data) {

    if (err){

        console.log("刪除失敗");

    }else {
        console.log("刪除成功");
        console.log(data);
    }
})
  • 更新數(shù)據(jù)
User.findByIdAndUpdate("5b92193d80a088143a5688bd",{
    userName:"李俊超"
},function (err,data) {

    if (err){
        console.log("查詢失敗");
    }else {
        console.log("更新成功");

    }

});
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容