Node使用Mongoose操作MongoDB(基礎)

Node 中 使用 Mongoose 操作 MongoDB 數據庫

1. 引入依賴

const mongoose = require('mongoose');

2. 連接數據庫

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

mongoose.set('useFindAndModify',false);

加上mongoose.set('useFindAndModify',false);不然後面的 findByIdAndUpdate 會給報錯,問的話 可以看這裏

3. 獲取連接狀態

mongoose中基本上所有的異步操作都支持Promise所以可以不使用回調函數的形式

let conn = mongoose.connection;
conn.on('error',(error) => {
  //如果連接出現錯誤,可能需要將連接數據庫操作中的 localhost 改成  127.0.0.1
  console.log(error);
}).once('open',() => {
  console.log('MongoDB Connected...');
  //這裏做連接成功後的事情
})

4. 創建文檔結構(Schema)

在連接數據庫成功後,我們就可以創建文檔結構了,這一步類似於關係數據庫中定義表結構,就是設計表

let userSchema = new Schema({
  username:{
    type:String,
    required:true
  },
  password:{
    type:String,
    required:true
  },
  email:{
    type:String,
    validate:{
      validator:(value) => {
        return /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(email);
      },
      message:"郵箱格式有誤"
    }
  }
})

上面通過new 來創建一個 Schema實例,數據各字段的約束通過一個對象傳入,這種方式類似於 vue 中子組件從父組件獲得數據時的操作。
關於各數據字段的中約束選項 可以看這裏 約束選項

5. 將定義好的文檔結構發佈爲模型,得到模型構造函數

let User = mongoose.model('User',userSchema);

mongoose.model() 的第一個參數是一個首字母大寫的單數形式的單詞,mongoose會將這個參數小寫複數化作爲 集合(表) 的名稱 ( users ) ,第二個參數就是上面剛剛創建的 文檔模式

6. 使用模板構造函數創建數據模型並保存

let user = new User({
  userName:'Mockingjay',
  password:'wow',
  email:'[email protected]'
});
//將數據保存到數據庫中
user.save((err,data)=>{//err:保存出錯,data:保存的數據})

7. 通過模型構造函數來對數據進行刪改查的操作

//查詢構造函數所對應的表的所有數據
User.find((err,data)=>{});
//更新數據
User.findByIdAndUpdate(condition,updateData,(err,data)=>{//err:操作錯誤信息,data:更新的數據});
//刪除數據
User.findByIdAndDelete(id,(err,data)=>{});

其實每一種操作都還對應着許多API 戳這裏瞭解更多

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