1. 程式人生 > 其它 >Mongoose(實現增刪改查)

Mongoose(實現增刪改查)

技術標籤:mongodb大前端

Mongoose(實現增刪改查)

目錄

建立資料結構

  1. 官網上下載MongoDB並配置環境變數 ,;
  2. 新建檔案USEMONGO
  3. 在USEMONGO中安裝依賴包
  4. cmd命令:npm install mongoose 執行後
  5. 再輸入npm init -y 命令;
  6. 新建config.js的檔案;
  7. 寫入程式碼
//匯入安裝包
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()
  1. 新建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中同樣寫入增加的第一個程式碼塊。其後寫入:

//操作修改(兩種可選)1async 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)
 })2async 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.