Mongoose 记录一下常用的
1,新增用的的(insertMany –往库里写入数据)
User.insertMany({
//这里就是写入库里的数据
username: username,
password: password
}).then((data) => {
// 返回数据
res.send({
code: 0,
msg: '注册成功!!'
})
}).catch((err) => {
res.send({
code: -2,
msg: '注册失败'
})
})
2,从库里通过id查找对应的数据
HtmlCss.findById(id).then((data) => {
res.send({
code: 0,
msg: "获取成功",
data: data,
})
}).catch((err) => {
res.send({
code: -2,
msg: "内部错误",
err: err,
})
})
3,通过id修改对应库里数据
HtmlCss.findByIdAndUpdate(id).updateMany({
html,
css,
htmlTitle,
htmlData,
}).then((data) => {
// 返回数据
res.send({
code: 0,
msg: '修改成功',
data: htmlData,
})
}).catch((err) => {
res.send({
code: -2,
msg: '修改失败',
err: err,
})
})
4, 查看列表 find
function listFn(req, res) {
let {
page,
size,
} = req.body
let total = 0
HtmlCss.countDocuments().then((data) => {
total = data //这里方便获取总量数据
HtmlCss.find().sort({ createdAt: 'desc' }).skip((page - 1) * size).limit(size).then((data) => {
//这里就是出来的符合各种条件过滤后的数据
if (data.length > 0) {
if (data) {
let newStocks = data.map(function (stock) {
let formattedDate = moment(stock.createdAt).format("YYYY-mm-dd");
stock.createdAt = formattedDate;
return stock;
});
}
res.send({
code: 0,
msg: "获取成功",
data: data,
total: total
})
} else {
res.send({
code: -1,
msg: "没有数据"
})
}
}).catch((err) => {
res.send({
code: -2,
msg: "内部错误",
err: err,
})
})
}).catch((err) => {
res.send({
code: -2,
msg: "内部错误",
err: err,
})
})
}
注册
function userRegister(req, res) {
// 获取数据
let {
username,
password
} = req.body;
if (!username || !password) return res.send({
code: -1,
msg: '参数错误'
});
// 数据处理
// 先判断用户名是否存在
User.find({
username
}).then((data) => {
if (data.length <= 0) {
User.insertMany({
username: username,
password: password
}).then(() => {
// 返回数据
res.send({
code: 0,
msg: '注册成功!!'
})
}).catch((err) => {
res.send({
code: -2,
msg: '注册失败'
})
})
} else {
res.send({
code: -1,
msg: '用户名已存在!'
})
}
})
}
登录
function userLogin(req, res) {
let {
username,
password
} = req.body
if (!username || !password) return res.send({
code: -1,
msg: "参数错误"
})
User.find({
username,
password
}).then((data) => {
if (data.length > 0) {
res.send({
code: 0,
msg: "登陆成功"
})
} else {
res.send({
code: -1,
msg: "登陆账号或密码错误,请重新输入!!"
})
}
}).catch((err) => {
res.send({
code: -2,
msg: "内部错误"
})
})
}
//假删除 updateMany
批量删除
// let delete=await User.updateMany({ $or:[{userId:1001},{userId:1002}] });
let res = await User.updateMany({ userId: { $in: [1001,1002] } }, { state: 2 });
// 用户新增/编辑
// /users/operate 用户新增/编辑
router.post('/operate', async (ctx) => {
const { userId, userName, userEmail, job, state, roleList, deptId, action, mobile } = ctx.request.body
if (action == 'add') {
console.log('action===', action)
if (!userName || !userEmail || !deptId) {
ctx.body = util.fail('参数错误', util.CODE.PARAM_ERROR)
return;
}
const doc = await Counter.findOneAndUpdate({ _id: 'userId' }, { $inc: { sequence_value: 1 } }, { new: true }) //有个集合conunter 里面有sequence_value 用来做id自增效果
const res = await User.findOne({ $or: [{ userName }, { userEmail }] }, '_id userName userEmail')
if (res) {
ctx.body = util.fail(`系统监测到有重复的用户,信息如下,${res.userName} - ${res.userEmail}} `)
} else {
try {
const user = new User({
userId: doc.sequence_value,
password: md5('123456'),
userName,
userEmail,
role: 1, //默认普通用户
roleList,
job,
state,
deptId
})
user.save();
ctx.body = util.success({}, '用户创建成功')
} catch (error) {
ctx.body = util.fail(error.stack, '用户创建失败')
}
}
} else {
if (!deptId) {
ctx.body = util.fail('部门不能为空', util.CODE.PARAM_ERROR)
return;
}
try {
const res = await User.findOneAndUpdate({ userId }, { mobile, job, state, roleList, deptId }, { new: true })
ctx.body = util.success({}, '更新成功')
} catch (error) {
ctx.body = util.fail(error.stack, '更新失败')
}
}
})
自增加model 设置
/**
* 维护用户ID自增长表
*/
const mongoose = require('mongoose')
const userSchema = mongoose.Schema({
_id: String,
sequence_value: Number
})
module.exports = mongoose.model('counter', userSchema, 'counters')
res = await Menu.findByIdAndRemove(id)
Menu.deleteMany({ parentId: { $all: [id] } })
删除数据需要把父级所包含的所有数据删除
res = await Menu.findByIdAndRemove(_id)
Menu.deleteMany({ parentId: { $all: [_id] } })
info = '删除成功'
query 常用到的过滤
$in $inc $all $or $set
版权声明:本文由Web学习之路发布,如需转载请注明出处。