Mongoose数据库和nodejs

本文详细介绍Mongoose库的安装及使用,包括数据库连接、数据模型定义、数据增删改查操作,以及如何通过模块化接口实现高效的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 Mongoose

新增

npm install --save mongodb
npm install --save mongoose


//引入mongoose
	var mongoose = require('mongoose');
//创建数据库连接,数据库名字:studentmanagement。如果数据库不存在会自动创建。
	mongoose.connect('mongodb://localhost/studentmanagement');
//创建一个schema
	var studentSchema = {
    	"name"     : String,
    	"age"     : Number,
    	"sex"     : String
	};
//创建一个模型(就是一个类)
	var Student = mongoose.model("student" , studentSchema);
//new一个实例
	var xiaoming = new Student({
    	"name"     : "小明",
    	"age"     : 12,
    	"sex"     : "男"
	});

//持久化
	xiaoming.save();

查找

//引包
var mongoose = require('mongoose');
//连接数据库,数据库叫做studentmanagement。如果数据库不存在会自动创建。没有大回调。
mongoose.connect('mongodb://localhost/studentmanagement');

//创建一个schema
var studentSchema = {
    "name"     : String,
    "age"     : Number,
    "sex"     : String
};

//创建一个模型
var Student = mongoose.model("student" , studentSchema);

Student.find({"age" : {$gt : 12}},function(err,docs){
    console.log(docs);
});

删除

Student.remove({"name" : "小明"},function(err){
    
});

修改

Student.find({"name" : "小强"} , function(err,docs){
    var xq = docs[0];
    xq.sex = "女";
    xq.save();
});

配置mongodb的例子

const mongoose = require('mongoose');

mongoose.connect('mongodb://xx.xx.xx.xxx:27017/myblog',{useNewUrlParser:true},(err,res)=>{
    if(!err){
        console.log(res)
    }
});

mongoose.connection.on('connected',() =>{
    console.log('数据库连接成功')
})
mongoose.connection.on('disconnected',() =>{
    console.log('数据库连接断开')
})
mongoose.connection.on('error',(err) =>{
    console.log('数据库连接失败' + err)
})
//导出mongoose模块
module.exports = mongoose;
在创建实例(Schema)的时候引入,再导出
const mongoose=require('../config/config');

const Shema = mongoose.Schema;
// const usersShema =new Shema({
//     // imageUrl:{type:String},
//     username:{type:String},
//     password:{type:String}
//     // usersSex:{type:String},
//     // usersAge:{type:String},
//     // usersJob:{type:String},
//     // percent:{type:Array},
// });
const usersShema =new Shema({
        "username": {type:String},
        "password" : {type:String},
        "name":{type:String},
        "sex":{type:String},
        "job":{type:String},
        "hobby":{type:String},
        "constellation":{type:String},
        "email":{type:String},
});

module.exports= mongoose.model('User', usersShema); 
接口

const Users = require('../database/users');

// exports.saveUsers = async(ctx)=>{
//     const users =new Users({
//         username:ctx.request.body.usersName,
//         password:ctx.request.body.password,
//         usersSex:ctx.request.body.usersSex,
//         usersAge:ctx.request.body.usersAge,
//         usersJob:ctx.request.body.usersJob,
//         imageUrl:ctx.request.body.imageUrl,
//         percent:ctx.request.body.percent, 
//     })
//     let result = await users.save();
//     console.log(111)
//     if(result){
//         console.log(5555)
//         ctx.body = {code:1}
//     }
// }
exports.saveUsers = async(ctx)=>{
    
    const users = new Users({
        "username": ctx.request.body.username,
        "password" : ctx.request.body.password,
        "name":ctx.request.body.name,
        "sex":ctx.request.body.sex,
        "job":ctx.request.body.job,
        "hobby":ctx.request.body.hobby,
        "constellation":ctx.request.body.constellation,
        "email":ctx.request.body.email,
    });
    let result = await users.save();
    if(result){
        ctx.body = {code:1,message:'注册成功'}
    }
}

exports.findUsers = async(ctx)=>{
    let result = await Users.find({username:ctx.request.body.username});
    console.log(result)
    if(result[0]){ 
        ctx.body={code:1,message:result[0]}
    }
    else if(result[1]){
        ctx.body = {code:3,message:'查到多条数据'}
    }
    else if(result = []){
        ctx.body = {code:2,message:'该账号未注册'}
    }
}
// exports.findUsers = async(ctx) =>{
//     console.log(222)
//     console.log(ctx.request.body.username)
    
//     Users.find({username:ctx.request.body.username},function(err,docs){
//         if(err){
//             console.log(111)
//             console.log(err)
//         }
//         else if(docs){
//             console.log(222)
//             console.log(docs)
//         }
        
//     });
    
// }


exports.updataUsers=async(ctx)=>{
    // console.log(ctx.request.body._id)
    console.log(ctx.request.body.password)
    let result= await Users.updateMany({username:ctx.request.body.username},ctx.request.body);
    console.log(result)
    if(result){
        ctx.body={code:1,message:'修改成功'}
    } 
} 
router文件引入接口
const Router = require('koa-router')
const mongoose = require('../config/config')
const path =require('path');


const users = require('../interface/postUsers');
// const records = require('../interface/postRecent');

const router = new Router();

router.post ('/saveUsers',users.saveUsers);         //第一种写法
router.post ('/findUsers',users.findUsers);
router.post ('/updataUsers',users.updataUsers);

router.post ('/findDynamic',require('../interface/postRecent').findDynamic);    //第二种写法
router.post ('/saveRecords',require('../interface/postRecent').saveRecords);
router.post ('/findRemove',require('../interface/postRecent').findRemove);
router.post ('/updataRecords',require('../interface/postRecent').updataRecords);


router.post ('/findComment',require('../interface/postComment').findComment);   //评论查询
router.post ('/saveComment',require('../interface/postComment').saveComment);
router.post ('/remvoeComment',require('../interface/postComment').remvoeComment);


module.exports = router;
在app.js中引用routers
const Koa = require('koa');

const app = new Koa();

const cors = require('koa-cors');

const bodyparser = require('koa-bodyparser');

const views = require('koa-views');  

const path = require('path');

const static = require('koa-static');

const router = require('./router/getRoute');

const postRouter = require('./router/postRoute');

app.use(static(path.join(__dirname,'./dist')));

app.use(views(path.join(__dirname,'./build')))
    .use(cors())
    .use(bodyparser())
    .use(router.routes())
    .use(postRouter.routes())


app.listen(8030)
console.log('服务器启动成功')

这样就分模块的把mongodb进行引入,模块化的接口方式也利于维护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值