当前位置:首页 > mongoDB > Mongoose > 正文内容

Mongoose 记录一下常用的

自由小鸟2年前 (2023-01-13)Mongoose2407

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学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=172

返回列表

没有更早的文章了...

没有最新的文章了...

“Mongoose 记录一下常用的” 的相关文章