nodejs使用mongoose对mongodb进行增删查改基础操作

首先要介绍一下Mongodb的一些基本操作

 show dbs //查看数据库
 use test //使用当前数据库,新建数据库,test为数据库名称
// 增
 db.test.insert({name:'wangjn',age:'20'}) //插入   
 db.test.insertOne({name:'haha'}) 
 db.test.insertMany([{name:'123'},{name:'222'}])


// 查 
// $lt 小于
// $lte 小于等于
// $gt 大于
// $gte 大于等于
// $ne 不等于
db.test.find() //查询所有文档     
db.test.find({age:{$lt:16}}) //年龄小于16的数据
db.test.find({name:'234'}) //查找名字为234的文档
db.test.find({name:'234',age:19}) // 多条件
or条件
db.col.find({$or: [{key1: value1}, {key2:value2}]})
// 删除
db.test.remove({age:{$lt:16}}) //删除年龄小于16的文档,也就是记录行
db.test.drop() //删除集合,就是表

//修改
db.collection.update(
   ,
   ,
   {
     upsert: ,
     multi: ,
     writeConcern: 
   }
 )
// query : update的查询条件,类似sql update查询内where后面的。
// update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
// upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
// multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
// writeConcern :可选,抛出异常的级别。

// 只更新第一条记录:

 db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
// 全部更新:

 db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
// 只添加第一条:

 db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
// 全部添加进去:

 db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
// 全部更新:

 db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
// 只更新第一条记录:

// db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

以上是mongodb的一些基本操作,使用mongoose之后一些操作的指令可能会发生变化,详情请见mongoose的官方文档
http://www.mongoosejs.net/docs/api.html

在这里直接附上mongoose的基本增删查改操作,路由和交互啥的没放上去,只起借鉴作用,完整的代码在最下面附上了git。

var express = require('express')
var app = express();
const uuidv1 = require('uuid/v1');
const cors = require("cors");
const crypto = require("crypto"); //node自带的密码加密
// const { get } = require("axios").default; //利用axois发送个网络请求
app.use(cors()); //就这一步就已经解决了跨域
var connection = require('../mongodb');
const {User} = require('../models/user.js');
module.exports = {
  list:app.get('/userList', (req,res)=>{
    var start = (req.query.pageNum-1)*req.query.pageSize
    var end = req.query.pageNum*req.query.pageSize
    new Promise(function(resolve, reject){
      User.find({username:{$regex:req.query.name,$options:'i'}}, function(err, result){
        if(err){
          console.log('[search ERROR] - ',err);
          return;
        }
        console.log(result.length)
        resolve(result.length)
      })
    }).then((data)=>{
      User.find({username:{$regex:req.query.name,$options:'i'}}, function(err, result){
        if(err){
          console.log('[search ERROR] - ',err);
          return;
        }
        res.json({
          code:'0',
          data:result,
          total:data,
          msg:''
        });
      }).limit(Number(req.query.pageSize)).skip(start)
    })
    
  }),
  detail:app.get('/userList/:id', (req,res)=>{
    User.findOne({_id:req.params.id}, function(error, results){
      if (error) throw error;   
      console.log(req.params)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
      res.json({
        code:'0',
        data:results,
        msg:''
      });
    })  
  }),
  create:app.post('/userList', (req,res)=>{
    User.findOne({username:req.body.username}, function(error, results){
      if (error) throw error;
      if(results){
        res.json({
          code:'10010',
          data:[],
          msg:'用户名已存在'
        });
        return;
      } else {
        let md5 = crypto.createHash("md5");
        let newPas = md5.update(req.body.password).digest("hex");
         User.create({
          username:req.body.username,
          userage:req.body.userage,
          password:newPas
        },function(err, result){
          if(err){
            console.log('[INSERT ERROR] - ',err.message);
            return;
          }        
          res.json({
            code:'0',
            data:'',
            msg:'成功'
          });
        })
      }
    })
  }),
  edit:app.put('/userList', (req,res)=>{
    User.findByIdAndUpdate(
      {
        _id: req.body._id
      },{
        username:req.body.username,
        userage:req.body.userage,
        password:req.body.password
      }, function(error, results){
        if(error){
          console.log('[UPDATE ERROR] - ',error);
          return;
        }        
        console.log('--------------------------UPDATE----------------------------');
        console.log('UPDATE affectedRows',results);
        res.json({
          code:'0',
          data:'',
          msg:'成功'
        });
    })
    
  }),
  delete:app.delete('/userList', (req,res)=>{
    User.deleteOne({_id:[req.body[0]]}, function(error, results){
      if (error) throw error;   
      console.log(results)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
      res.json({
        code:'0',
        data:'',
        msg:'成功'
      });
    })  
  }),
  login:app.post('/user/login', (req,res)=>{
    // const {username, password} = req.body;
    let username = req.body.username;
    let password = req.body.password;
    
    let md5 = crypto.createHash("md5");
    let newPas = md5.update(password).digest("hex");
    console.log(username,newPas)
    const user = User.findOne({username:username},function(err,result){
      if(err){
        console.log(err);
        return;
      }
      if(!result){
        res.json({
          code:'10020',
          data:[],
          msg:'用户不存在'
        });
        return;
      }
      if(result.password !== newPas){
        res.json({
          code:'10030',
          data:[],
          msg:'密码错误'
        });
        return;
      } else if(result.password === newPas){
        res.json({
          code:'0',
          data:[],
          msg:'成功'
        });
        return;
      } else {
        res.json({
          code:'999',
          data:[],
          msg:'未知错误'
        });
        return;
      }
    })
  }),
}

源码小demo附上https://github.com/wangjianan05/nodejsUseMongodb.git

你可能感兴趣的:(nodejs使用mongoose对mongodb进行增删查改基础操作)