Mongoose常用的增删改查方法
一、增加
Model的方法
- new Model({}).save(function(err,data){})
new UserModel({username, type, password:md5(password)}).save(function (error, user) {
res.cookie('userid', user._id, {maxAge: 1000*60*60*24})
const data = {username, type, _id: user._id}
res.send({code: 0, data})
})
二、删除
三、修改
Model的方法
- Model.findByIdAndUpdate({},{},function(err,oldData){}
UserModel.findByIdAndUpdate({_id: userid}, user, function (error, oldUser) {
if(!oldUser) {
res.clearCookie('userid')
res.send({code: 1, msg: '请先登陆'})
} else {
const {_id, username, type} = oldUser
const data = Object.assign({_id, username, type}, user)
res.send({code: 0, data})
}
})
- 参数说明
- 第一个对象:条件:_id
- 第二个对象:需要更新的数据
- 第三个参数为回调函数:回调函数的第二个参数为旧数据
- 这三个参数是比较常用的参数,想要详细知道其他参数 请 点击
- 对于例题的说明
- 前台传递过来一个user,想要修改user的信息,这个user是在cookie中保存的
- 数据库中如果查找不到就要通知浏览器删除cookie
- 如果找到就要合并两个对象,完成更新
- 对于Object.assgin()的说明
- 可以接受多个参数,但是只有第一个参数为目标对象
- 将出第一个参数之外的对象的属性和属性值合并到目标对象身上来
- 最终返回目标对象,详情 点击
- 使用对象的三点运算符也是可以完成的
四、查询
Model的方法
- Model.findOne({}, {}, function (error, data) {}
单个
UserModel.findOne({_id: userid}, {password: 0, __v: 0}, function (error, user) {
if(user) {
res.send({code: 0, data: user})
} else {
res.clearCookie('userid')
res.send({code: 1, msg: '请先登陆'})
}
})
- 参数说明
- 第一个对象:条件:对象的任何属性
- 第二个对象:需要过滤的数据
0表示不显示 ,1表示显示
- 第三个参数为回调函数:回调函数的第二个参数为查找到的数据
- 这三个参数是比较常用的参数,想要详细知道其他参数 请 点击
- Model.find({}, {},{} function (error, docs) {}
单个或多个,返回数组
- 参数说明 共四个参数
- 第一个参数:对象:查询的条件
- 属性值可以是正则表达式
$gte
表示 >
对于年龄进行筛选$or
属于MongoDB的逻辑操作符,表示或者,除他之外还有$and,$not,$nor
,逻辑操作符后面跟一个数组
- 第二个参数:对象:过滤属性同findOne
- 第三个参数:对象:对于查找到的文档进行操作
skip
表示跳过limit
表示限制sort
表示排序 详情 点击
- 第四个参数:回调函数