nodeJS中使用mongoose模塊操做mongodb數據庫

 在實際運用中,對於數據庫的操做咱們不可能一直在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);
相關文章
相關標籤/搜索