数据库mongoose封装库
2019-05-26 本文已影响0人
果木山
数据库mongoose封装库
- mongoosedb.js
//1.引入模块
const mongoose=require("mongoose");
//2.引入参数
const dbSetting=require("./dbsetting");
//2.连接数据库
mongoose.connect(dbSetting.url+"/"+dbSetting.dbName,{useNewUrlParser:true},function (err) {
if(err){
console.log("连接数据库失败");
return;
}
console.log("连接数据库成功");
});
//3.创建一个schema,规定集合内数据的结构和类型,创建规则,规则中不设置,不能插入成功;
var carSchema=new mongoose.Schema({
name:String,
age:Number,
sex:String
});
//4.根据规则,创建一个类,相当于数据库中的一个集合
var Car=mongoose.model("cars",carSchema);//集合名为cars
//5.类的静态属性来操作数据库的增删改查
module.exports= {
//1.增
//1)插入多条数据:单个数据可以是json对象,多个数据放在数组中;
insertMany: function (aryjson, callback) {
Car.insertMany(aryjson, function (err, docs) {
callback(err, docs);
})
},
//2.删
//1)删除满足条件的一条数据:
deleteOne: function (filter, callback) {
Car.deleteOne(filter, function (err, doc) {
callback(err, doc);
})
},
//2)删除满足条件的所有数据:
deleteMany: function (filter, callback) {
Car.deleteMany(filter, function (err, doc) {
callback(err, doc);
})
},
//3.改
//1)修改满足条件的一条数据:
updateOne: function (filter, updatejson, callback) {
Car.updateOne(filter, updatejson, function (err, doc) {
callback(err, doc);
})
},
//2)修改满足条件的多条数据:
updateMany: function (filter, updatejson, callback) {
Car.updateMany(filter, updatejson, function (err, doc) {
callback(err, doc);
})
},
//4.查
//1)查找,排序,分页
find:function (filter, sortcur, callback) {
//sortcur:{"sort":{"age":-1},page,pageamount}
if(arguments.length===2){
callback=sortcur;
sortcur={};
}
var sort=sortcur.sort || {};
var page=Number(sortcur.page) || 0;
var pageamount=Number(sortcur.pageamount) || 0;
Car.find(filter,function (err,docs) {
callback(err,docs);
}).sort(sort).limit(pageamount).skip(page*pageamount);
},
//2)获取满足条件的数据总个数
count:function (filter, callback) {
Car.countDocuments(filter,function (err, count) {
callback(err,count);
})
}
};
- dbsetting.js
module.exports={
url:"mongodb://localhost:27017",
dbName:"tiankong"
};
- app.js
const express=require("express");
const mdb=require("./mongoosedb");
const app=express();
app.listen(2222,function () {
console.log("2222 server is running");
});
//1.插入多条数据
app.get("/insertmany",function (req, res) {
var aryjson=[{name:"qiaofeng",age:16},{name:"duanyu",age:34}];
var json={name:"yangguo",age:20};
mdb.insertMany(aryjson,function (err, doc) {
if(err){
res.send(err);
}
res.send(doc);
})
});
//2.修改一条
app.get("/updateone",function (req, res) {
var filter={"age":23};
var updatejson={$set:{"age":100}};
mdb.updateOne(filter,updatejson,function (err, doc) {
if(err){
res.send(err);
}
res.send(doc);
});
});
//3.修改多条数据
app.get("/updatemany",function (req, res) {
var filter={"age":23};
var updatejson={$set:{"age":100}};
mdb.updateMany(filter,updatejson,function (err, doc) {
if(err){
res.send(err);
}
res.send(doc);
});
});
//4.查找数据
app.get("/find",function (req, res) {
var sort={"age":1};
var page=1;
var pageamount=5;
mdb.find({},{sort,page,pageamount},function (err, docs) {
if(err){
res.send(err);
}
res.send(docs);
})
});
//5.删除一条数据
app.get("/deleteone",function (req, res) {
mdb.deleteOne({"age":100},function (err, doc) {
if(err){
res.send(err);
}
res.send(doc);
})
});
//6.删除多条数据
app.get("/deletemany",function (req, res) {
mdb.deleteMany({"age":100},function (err, doc) {
if(err){
res.send(err);
}
res.send(doc);
})
});
//7.查找满足条件的数据总个数
app.get("/count",function (req, res) {
mdb.count({"age":{$lt:50}},function (err, count) {
if(err){
res.sende(err);
}
console.log(typeof count);
res.send(count.toString());
})
});