npm install mongoose 下载mongoose模块
使用之前先打开mongodb数据库
mongodb --dbpath 地址
详情请看mongodb的操作
mongodb操作
详情可以看
node.js下mongoose简单操作实例
1)mongoose在koa中使用
在项目根目录中创建config文件夹并创建mongo_config.js
此文件保存mongodb的地址及配置
//mongo_config.js
module.exports = {
dbs : "mongodb://127.0.0.1:27017/study"
}
1-2 连接数据库
在koa项目的运行文件 app.js中
增加以下代码
const mongoose = require('mongoose');
const dbConfig = require('./config/mongo_config.js');
mongoose.connect(dbConfig.dbs,{
useNewUrlParser : true
})
2)Schema的创建
在mongoose中那么Schema就是它的灵魂,所有对数据库的操作都是通过Schema来进行操作
在项目根目录中创建schema文件夹
例 :我们创建sdudent的Schema模型
//schema=>student.js
const mongoose = require('mongoose');
let Student = new mongoose.Schema({
name : String, //姓名
age : Number, //年龄
class_code : Number //班级编号
})
//...至于属性看项目需要什么
module.exports = mongoose.model("Student",Student);
通过上述的Schema例子我们就可以看出每一个Schema都可以看做是mysql中的每一张表,然而Schema的属性就类似每一张表里面的字段
3)运用Schema
对数据库的操作我们可以单独创建文件use_db.js
3-1 查
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
getStudent(){ //查找所有的学生
return new Promise(async (resolve,reject)=>{
try{
let result = await student_sc.find({})
resolve({
code : 1,
meesage : '查找成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
查找指定学生
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
getOneStudent(name){ //查找指定学生,传入查找的依据参数
return new Promise(async (resolve,reject)=>{
try{
let result = await student_sc.findOne({name : name})
resolve({
code : 1,
meesage : '查找成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
查找所有学生并且分页&按照年龄大小排序
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
getAllStudent(pageNum,pageSize){ //查找所有的学生并且分页
return new Promise(async (resolve,reject)=>{
try{
let result = await student_sc.find({}).skip(pageNum*pageSize).limit(pageSize).sort({'age':-1})
resolve({
code : 1,
meesage : '查找成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
skip条件是分页刷选多少条数据
limit 是一页有多少容量
sort排序 -1 大到小 1:小到大
...
3-2 增
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
addStudent({name,age,classCode}){
return new Promise(async (resolve,reject)=>{
let newStudent = new student_sc({
name,
age,
class_code:classCode
});
try{
await newStudent.save();
resolve({
code : 1,
meesage : '增加成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
3-3 删
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
delStudent({name}){//删除的值
return new Promise(async (resolve,reject)=>{
try{
let result = await student_sc.where({name : name}).remove()
resolve({
code : 1,
meesage : '删除成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
3-4 改
const student_sc = require('../schema/student.js') //导入student - schema文件
module.exports = {
updateStudent({name,newName}){//改的查找条件
return new Promise(async (resolve,reject)=>{
try{
let result = await student_sc.where({name : name}).update({name :newName })
resolve({
code : 1,
meesage : '修改成功',
result
})
}catch(e){
reject({
code : -1,
messge : e
})
}
})
}
}
网友评论