1. 程式人生 > >【SRH】------mongoose,增、刪、改、查

【SRH】------mongoose,增、刪、改、查

mongoose中文文件
https://cn.mongoosedoc.top/docs/guide.html

mongodb與mongoose的區別

mongoose:
可以將非關係型資料庫轉為關係型資料庫
可以限制欄位的型別
mongoose有promise的用法形式,可以鏈式操作
  0.準備工作
  先安裝mongoodb 和node.js
  1.啟動mongodb伺服器
 mongod --dbpath e:\data\db
  2.在專案根目錄下 
   初始化專案      
         npm init 
-y 下載mongoose cnpm install mongoose --save-dev(區域性下載,如果需要該模組,每個專案下都要新下載)

 

node連線資料庫,實現增、刪、改、查

//引入mongoose模組
const mongoose = require("mongoose");
//定義連線的資料庫地址和資料庫名稱
const url = "mongodb://127.0.0.1:27017/demo3";
//連線資料庫demo3
mongoose.connect(url,(err)=>{
    
//判斷是否連線成功 if(err){ console.log("連線失敗"); }else{ console.log("連線成功"); } })
 
   
   
//建立新表,並規定表中的資料型別
// 參1:需要連線的表(mongoose會自動將這個表加s)
// 參2:欄位的型別物件(欄位的配置項),是一個物件
// model為函式(相當於建構函式,Stu為函式名)
const Stu = mongoose.model("user",{
    name:String,
    age:Number
})
//
增(想要增加多條資料,就要建立多個物件)
const stu1 = new Stu({
    name:"",
    age:13
})
stu1.save().then((data)=>{
   // 回撥函式中只有一個引數data,沒有err
    //data為增加到資料庫中的資料
    console.log(data)
    
})
//
Stu.remove({
    name:""
}).then((data)=>{
     //回撥函式中只有一個引數data,沒有err
    //data為刪除的資料的條數,刪除是否成功
    console.log(data);//{ n: 4, ok: 1 }

})
//
Stu.update({
    name:""
},{
    $set:{
        "age":222
    }
}).then((data)=>{
    //{ n: 1, nModified: 1, ok: 1 }
    console.log(data)
})
//查  所有資料(鏈式操作,查詢後輸出)
Stu.find().then((data)=>{
    //回撥函式中只有一個引數data,沒有err
    console.log(data);
})
//查  指定資料
Stu.find({name:""}).then((data)=>{
    console.log(data)
})
//查  指定的列
Stu.find({},{"name":2,"_id":0}).then((data)=>{
    console.log(data);
})
//查  第一條資料
Stu.findOne().then((data)=>{
    console.log(data);
})
//升序
Stu.find().sort({"age":1}).then((data)=>{
    console.log(data);
})
//降序
Stu.find().sort({"age":-1}).then((data)=>{
    console.log(data);
})
//查詢比較 > 、<、>=、<=
//>
Stu.find({age:{$gt:15}}).then((data)=>{
    console.log(data);
})
//<
Stu.find({age:{$lt:15}}).then((data)=>{
    console.log(data);
})
//>= <=
Stu.find({age:{$gte:12,$lte:18}}).then((data)=>{
    console.log(data);
})
//不等於
Stu.find({age:{$ne:13}}).then((data)=>{
    console.log(data);
})
//模糊查詢(正則)
Stu.find({name:/孫/}).then((data)=>{
    console.log(data);
})
 
   
   
Stu.find({name:/^王/}).then((data)=>{
    console.log(data);
})
 
   
   
Stu.find({name:/王$/}).then((data)=>{
    console.log(data);
})
 
  

 

//or或者
Stu.find({$or:[{name:""},{name:""}]}).then((data)=>{
    console.log(data);
})

 

//分頁
//limt
Stu.find().limit(2).then((data)=>{
    console.log(data);
})
//skip()
Stu.find().skip(1).then((data)=>{
    console.log(data);
})
 
   
   
Stu.find().skip(1).limit(1).then((data)=>{
    console.log(data);
})
//包含$in,查詢年齡是13和17的資料(注意,不是範圍)
Stu.find({age:{$in:[13,17]}}).then((data)=>{
    console.log(data);
})

///
包含$nin,查詢年齡不是13和17的資料(注意,不是範圍)
Stu.find({age:{$nin:[13,17]}}).then((data)=>{
    console.log(data);
})