Mongoose(實現增刪改查)
阿新 • • 發佈:2021-01-22
Mongoose(實現增刪改查)
目錄
建立資料結構
- 官網上下載MongoDB並配置環境變數 ,;
- 新建檔案USEMONGO ;
- 在USEMONGO中安裝依賴包
- cmd命令:npm install mongoose 執行後
- 再輸入npm init -y 命令;
- 新建config.js的檔案;
- 寫入程式碼
//匯入安裝包
const mongoose = require('mongoose')
//2.連結資料庫 ,庫名 ------ 預設返回promise
mongoose.connect('mongodb://localhost/abc001' ).then(()=>{
console.log('資料庫連結成功')
}).catch(err=>{
console.log('資料庫連結失敗'+err)
})
//資料模式:規範----Schema
var kittySchema = mongoose.Schema({
name:String
})
//根據模式建立一個模板-----例項化一個物件
let maomi = mongoose.model('xiaomiaomiao',kittySchema)
//根據模板建立實物
let huimao = new maomi({
name:'xiaohui'
})
console.log(huimao)
huimao.save()
- 新建4個檔案,如
增
在add.js中寫入以下程式碼,後續功能的實現都需要在此基礎上操作。
//匯入安裝包
const mongoose = require('mongoose')
//2.連結資料庫 ,庫名 ------ 預設返回promise
mongoose.connect('mongodb://localhost/abc001').then(()=>{
console.log('資料庫連結成功')
}).catch(err=>{
console.log('資料庫連結失敗'+err)
})
// 根據京東欄位插入使用者
//1.使用者資訊的Schema
let userSchema = mongoose.Schema({
userName:String,
nickNmae:String,
gender:Number,
birthDay:Date,
hobby:Array,
})
//2.符合schema的modul----一個js檔案:::(表名)集合名稱,是負數模式:mongoose.model()
let userModel = mongoose.model('users',userSchema)
接著就是增加的語法
//3.符合module的一條使用者資料-----在一起::::例項化new
let xiaoZhen = new userModel({
userName:'月月',
nickNmae:'22',
gender:0,
birthDay:'2000-01-01T16:00:00.000+00:00',
hobby:['吃飯','睡覺','打豆豆']
})
//4.插入資料庫------在一起:::save()
xiaoZhen.save((err,result) => {
if(err){
console.log(err)
}else{
console.log('資料插入成功' + result)
}
})
這樣在終端和compass中,就都可以看到這一使用者資訊的插入。
MongoDB compass中:
vs code終端中:
刪
在del.js中同樣寫入增加的第一個程式碼塊。其後寫入:
//刪除操作三個選擇
//Model.remove()可選擇刪除一條還是多條
//Model.deleteOne 刪除一個
//model.deleteMany() 刪除所有匹配的文件
(1)userModel.remove({userName:'月月'},{single:ture},(err,rs01) => console.log(rs01))//僅刪除匹配的第一個文件,設定為true
//執行後顯示
//資料庫連結成功
//{ n: 1, ok: 1, deletedCount: 1 }
(2) userModel.deleteOne({ userName:'肖肖' },(err,rs02) => console.log(rs02))//刪除一個
//執行後顯示
//資料庫連結成功
//{ n: 1, ok: 1, deletedCount: 1 }
(3)userModel.deleteMany({nickNmae:'22'},(err,rs03) => console.log(rs03))
//執行後顯示
//資料庫連結成功
//{ n: 2, ok: 1, deletedCount: 2 }
改
在set.js中同樣寫入增加的第一個程式碼塊。其後寫入:
//操作修改(兩種可選)
(1)async function setData(){
//1.查詢
let hh = await userModel.findOne({userName:'花花'})
//2.修改資料------修改資料引數值的方法set()
hh.set({
gender:1
})
//3.重新插入資料庫
hh.save()
console.log(hh)
}
setData()
//查詢並修改
//userModel.findOneAndUpdate()
//(查詢條件,更新的資料)
(2)userModel.findOneAndUpdate({nickNmae:'88'},{userName:'66'},{new:true},(err,rs) => console.log(rs))
查
在queries.js中同樣寫入增加的第一個程式碼塊。其後寫入:
//3.執行查詢(兩種選擇)
(1) userModel.findOne({ userName :'肖肖'},function (err,result) {
err ? console.log('沒有資料' + err) : console.log(result)
})
(2)async function getData(){
let rs = await userModel
.find()
.or({gender:0})//女生
.sort({_id:'desc'})//倒敘
.limit(2)//顯示2條
.skip(1)//跳過前1條
console.log(rs)
}
getData()
參考
mongoose5.0中文文件 連結: link.
MongoDB下載官網(較麻煩) 連結: link.
MongoDB下載 連結: link.