【SRH】------mongoose,增、刪、改、查
阿新 • • 發佈:2018-12-31
mongoose中文文件
https://cn.mongoosedoc.top/docs/guide.html
mongodb與mongoose的區別
mongoose:
可以將非關係型資料庫轉為關係型資料庫
可以限制欄位的型別
mongoose有promise的用法形式,可以鏈式操作
0.準備工作
先安裝mongoodb 和node.js1.啟動mongodb伺服器
mongod --dbpath e:\data\db2.在專案根目錄下
初始化專案 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); })