在實際運用中,對於數據庫的操做咱們不可能一直在cmd命令行中進行操做,通常狀況下須要在node環境中來操做mongodb數據庫,這時就須要引入mongoose模塊來對數據庫進行增刪改查等操做。node
首先,啓動數據庫服務:mongodb
mongod --dbpath (db文件夾路徑)
數據庫
而後安裝mongoose模塊:npm
npm install mongoose -Spromise
app.js文件:app
1 const mongoose = require('mongoose') 2
3 // 鏈接數據庫:若是不存在指定數據庫文件則會自動建立(該方法會返回一個promise對象)
4 mongoose.connect('mongodb://localhost:27017/project',{ 5 useNewUrlParser:true, 6 useUnifiedTopology:true
7 }).then( async ()=>{ 8 console.log('數據庫鏈接成功'); 9 }.catch(()=>{ 10 console.log('數據庫鏈接失敗'); 11 })
創建模型:(代碼均在.then回調函數中執行)async
1 // 先定義數據庫中集合的數據格式
2 let studentSchema = new mongoose.Schema({ // 表示數據庫中集合的數據有 name sex age
3 name:{type:String,require:true}, 4 sex:{type: String}, 5 age:{type: Number,require: true}, // require屬性決定該類型數據是否必須存在集合中,爲true則必須存在
6 className:{type: String,default:'中二班'} //default屬性設置默認值
7 }) 8 let Student = mongoose.model("class1",studentSchema) 9
10 // 簡寫
11 let Student = mongoose.model('class1',new mongoose.Schema({ 12 name:String, 13 sex:String, 14 age:Number 15 }))
添加數據mongoose
1 //向集合中插入一條數據 create函數返回的是一個 promise 2 let result1 = await Student.create({ 3 name:'張三', 4 sex:'男', 5 age:20 6 }) 7 console.log(result1); 8 9 //向集合中插入多條數據 10 Student.create([ 11 { 12 name:'小海', 13 sex:'男', 14 age:21 15 }, 16 { 17 name:'小菲', 18 sex:'女', 19 age:20 20 }, 21 { 22 name:'小明', 23 sex:'男', 24 age:23 25 } 26 ])
查詢數據函數
1 //查詢集合中的數據 find函數返回的是一個 promise 2 let result2 = await Student.find({name:'張三'}) 3 console.log(result2);
刪除數據ui
1 //刪除集合中的一條數據 deleteOne函數返回的也是一個promise 2 let result3 = await Student.deleteOne({name:'張三'}) 3 console.log(result3); 4 5 //刪除集合中的多條數據 deleteMany函數返回一個promise 6 let result4 = await Student.deleteMany({name:"張三"}) 7 console.log(result4);
修改數據
1 //更新一條集合中的數據 updateOne函數返回一個promise 2 let result5 = await Student.updateOne({name:'小菲'},{$set:{name:'小紅'}},) 3 console.log(result5); 4 5 //更新多條集合中的數據 updateMany函數返回一個promise 6 let result6 = await Student.updateMany({name:"小菲"},{$set:{name:'菲菲'}}) 7 console.log(result6);