集成MongoDB到Express框架中

247 阅读2分钟

MongoDB简介

  • 概念:它是一个文档型数据库,它没有表这样的概念;只有集合概念,数据都是以json对象的形式进行存储;集合可以存储任意字段和数据类型的数据。

MongoDB在CMD命令行中的基本使用

  • htlp 全局help命令可以查看所有帮助信息
  • db 指当前数据库对象
  • db.help() 数据库的帮助方法
  • db.mycoll.help() 查看集合的方法发(mycoll就是自己定义的集合名字)
  • show dbs 展示当前mongodb中所有的业务数据库名字
  • show collections 展示当前数据库下的所有集合名字
  • use db_name 使用某一个数据库

集成MongoDB到Expres框架

  1. mkdir 新建文件夹
  2. npm init -y 初始化项目
  3. 修改package.json和readme
  4. 新建index.js
  5. 安装依赖 express mongoose npm i express@4 mongoose -S
  6. 引入框架、实例化、监听端口启动服务、做一个静态服务器
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
    //引入express模块
   const express = require('express')
   //创建服务
   let app = express()
   //监听端口
   app.listen(1000,()=>{
       console.log('服务以启动')
   })
   //做一个静态服务器,默认以登录界面打开可以不修改就是以index打开
   app.use(express.static('public',{index:'login.html'}))
  1. 引入mongodb模块,新建连接,创建描述,创建模型,创建接口
pie title Pets adopted by volunteers
"Dogs" : 386
"Cats" : 85
"Rats" : 15
//引入模块
const mongodb = require('mongoose')
//建立连接
//mongodb.connect('地址/数据库名字',callback)
mongodb.connect('mongodb://127.0.0.1:27017/user',(err)=>{
        if(err){
            console.log('连接失败')
        }
        else{
         console.log('连接成功')
        }
})

//创建描述
const UserSchema = new mongodb.Schema({
        id:Number,
        name:String
})

//创建模型
//mongodb.model('name',Schema,collections)参数1model名字,参数2 描述名字,参数3集合名字
const userModel = mongodb.model('userModel',UserSchema,'user')

//创建接口
app.get('/user/list',(req,res)=>{
      userModel.find((err,result)=>{
              if(!!data){              
                  res.send({
                  code:500,
                  msg:'服务器繁忙'
                  })
              }else{
              
              res.send({
                  code:200,
                  msg:'服务器响应成功'
                  data:result
                  })
              
              }
      })  
})

运算符

  • $gt 大于
  • $lt 小于
  • $gte 大于等于
  • $lte 小于等于

MongoDB操作数据常用命令

增加

  • db.user.insert(obj)
  • db.user.insertMany([{}])
db.user_info.insertOne({id: 'admin', name: 'admin', age: 20, sex: '男'})
db.user_info.insertMany([{"id":"admin0","name":"admin0","age":21,"sex":"男"},{"id":"admin1","name":"admin1","age":22,"sex":"男"},{"id":"admin2","name":"admin2","age":23,"sex":"男"},{"id":"admin3","name":"admin3","age":24,"sex":"男"},{"id":"admin4","name":"admin4","age":25,"sex":"男"}])

删除

  • db.user.deleteOne({条件})
  • db.user.deleteMany({条件})
db.user_info.deleteOne({sex: '男'}) 如果是要删除,一般是遍历删除,不允许批量删除,会删除匹配到的第一条数据

修改

  • db.user.update({调价},{修改内容})
  • db.user.updateOne()
  • db.user.updateMany()
db.user_info.update({id: 'admin0'}, {sex: '女'}) 它是精确匹配,然后重置对象
db.user_info.update({}, {sex: '女'}) 把数据全部改为传递第二个参数,他会匹配第一条数据、数据删除

查询

  • db.user.find() 查询全部
  • db.user.find({条件}) 查询满足条件的
db.user_info.find({age: {$gt: 22}}) 大于
db.user_info.find({age: {$gte: 22}}) 大于等于
db.user_info.find({age: {$gte: 22, $lt: 24}})