mongoDB資料庫 之 Mongoose的使用
阿新 • • 發佈:2019-02-11
簡介
Mongoose是一個物件文件模型(ODM)庫,它對Node原生的MongoDB模組進行了進一步的優化封裝,並提供了更多的功能。核心物件包括Schema、model、document三部分。
優勢
- 1)可以為文件建立一個模式結構(Schema)
- 2)可以對模型中的物件/文件進行驗證
- 3)資料可以通過型別轉換轉換為物件模型
- 4)可以使用中介軟體來應用業務邏輯掛鉤
- 5)比Node原生的MongoDB驅動更容易
三部分介紹
Schema方法
定義:模式物件,對集合進行約束
model方法
定義:模型物件,相對於資料庫中的集合,通過該物件對集合進行各種操作
document方法
定義:相當於資料庫中的文件,可以通過該物件對文件進行各種操作
mongoose建立例項物件,連線資料庫例項的demo
一般步驟
- 引入mongoose模組
- 建立schema文件物件
- 建立約束
- 建立集合物件
- 建立文件物件
- 將文件物件儲存到資料庫中
- 連線資料庫
- 監聽資料庫是否連線成功
- 將建立過程的邏輯放入promise物件中,避免回撥地獄
- 如果資料庫連線成功,執行.then,失敗,執行.catch
程式碼實現
//1、引入mongoose模組 var mongoose = require("mongoose") //9、建立promise物件 var promise = new Promise((resolve,reject)=>{ //7、連線資料庫 mongoose.connect("mongodb://localhost:27017/mongoose_test1",{useNewUrlParser:true}); //8、設定資料庫連線的集合 mongoose.connection.once("open",err=>{ if(!err){ console.log("資料庫連線成功") resolve(); }else{ console.log(err); reject(err); } }) }) //10、呼叫.then函式 promise .then(()=>{ // 資料庫連線成功 //2、建立schema物件 var Schema = mongoose.Schema; //3、建立約束 var studentsSchema = new Schema({ name:String, age:Number, sex:String, phone:{ type:String, //字串型 unique:true, //唯一的 required:true //必須寫,不寫會報錯 }, info:Schema.Types.Mixed, //混合型 hobby:[String], //由於hobby可以有多個,用陣列 meta:{ createTime:{ type:Date, default:Date.now() //預設時間,是現在 }, updateTime:{ type:Date, default:Date.now() } } }) //4、建立文件物件 var Students = mongoose.model('Students',studentsSchema); //5、建立集合物件 var studentS = new Students({ name:"許真真1", age:23, sex:"女", phone:"13141666412", info:"喜歡你", hobby:["讀書","吃飯"] }) // 6、儲存建立的集合物件 studentS.save(err=>{ if(!err){ console.log("資料儲存成功") }else{ console.log(err); } }) }) .catch(err=>{ console.log(err); })