tip:最好都用上async 和 await,防止异步执行。
示例:
router.get("/m1/delete",async ctx=>{let {id} = ctx.query;console.log(id);await MembersModel.remove({_id:id});ctx.redirect("/");})
3.1 设计Schema发布model
var mongoose = require('mongoose')var Schema = mongoose.Schema//1.连接数据库//指定连接的数据库不需要存在,当你插入第一条数据之后就会自动被创建出来mongoose.connect('mongodb://localhost/itcast')//2.设计集合结构(表结构)//字段名称就是表结构中的属性名称//约束的目的是为了保证数据的完整性,不要有脏数据// var blogSchema = new Schema({// title: String,// author: String,// body: String,// comments: [{ body: String, date: Date }],// date: { type: Date, default: Date.now },// hidden: Boolean,// meta: {// votes: Number,// favs: Number// }// });var userSchema = new Schema({username:{type:String,required:true //必须有},password:{type:String,required:true},email:{type:String}})//3.将文档结构发布为模型//mongoose.model方法就是用来将用一个架构发布为model//第一个参数:传入一个大写名词单数字符串用来表示数据库名称// mongoose会自动将大写名词的字符串生成 小写复数 的集合名称// 例如这里的 User 最终会变成 users 集合名称//第二个参数:架构 Schema//返回值:模型构造函数//var Blog = mongoose.model('Blog', blogSchema);var User = mongoose.model('User', userSchema);//4.有了模型构造函数以后,使用这个构造函数对 users 集合中的数据进行操作(增删改查)
3.2 增加数据
var admin = new User({username:'admin',password:'123456',email:'admin@admin.com'})admin.save(function(err,ret){if(err){console.log('保存失败')} else {console.log('保存成功')console.log(ret)}})
3.3 查询
查询所有:
//查询所有记录,如果中间有改过数据,会把更改前后的数据都给显示出来User.find(function(err,ret){if(err){console.log('查询失败')} else {console.log(ret)}})
按条件查询所有:
User.find({username:'admin'},function(err,ret){if(err){console.log('查询失败')} else {console.log(ret)}})
按条件查询单个:
//只查询一个,显示的是对象{},不是数组[]//不带条件的话,显示第一个对象,一般都会带条件的User.findOne({username:'admin'},function(err,ret){if(err){console.log('查询失败')} else {console.log(ret)}})
3.4 删除数据
User.remove({username:'admin'},function(err,ret){if(err){console.log('删除失败')} else {console.log('删除成功')console.log(ret)}})
3.5 跟新数据
根据条件更新所有:
Model.update(conditions,doc,[options],[callback])• 1
根据指定条件更新一个:
Model.findOneAndUpdate([conditions],[update],[options],[callback])• 1
根据id更新一个:
User.findByIdAndUpdate('5c9069fecf8c820fccb64d9c',{password:'123'}, function (err,ret) {if(err) {console.log('更新失败')} else {console.log('更新成功')}})
