关于mongdb在node中的简单操作

安装mongdb

检查mongdb指令:which mongod

启动mongdb服务:mongod

mongoose中文文档

https://mongoose.shujuwajue.com/

在demo中安装mongoose:npm i mongoose --save

demo路径

在dbs文件夹的config.js下配置连接mongdb的数据库地址

基本语法:对象中,字段dbs为连接数据库的地址:dbs:数据库地址

module.exports = {
    dbs:'mongodb://127.0.0.1:27017/dbs'//连接本地数据库
}

在dbs的modules文件夹下的person.js中配置mongdb的数据格式,创建一个表的模型

基本语法一(创建一个表数据格式的实列):new mongoose.Schema({字段名:字段类型,字段名:字段类型})

基本语法二(创建一个表的model):mongoose.model(表名称,数据格式实列)

const mongoose = require('mongoose')
let personSchema = new mongoose.Schema({//设计一个personSchema的数据格式
    name:String,
    age:Number
})
module.exports =  mongoose.model('Person',personSchema)//创建一个mongoose的Person模型表

在app.js中引入数据库处理和配置并且连接数据库

基本语法(连接数据库):mongoose.connect(要连接的数据库地址,{userNewUrlParser:true})//里面的对象用于配置数据库

//引入数据库处理和配置
const mongoose = require('mongoose')
const dbConfig = require('./dbs/config')
//连接数据库
mongoose.connect(dbConfig.dbs,{
  userNewUrlParser:true
})

在routers文件夹下的users.js中对数据库进行操作(增、删、改、查)

1、引入创建表的实列 实现mongoose的增删改查

//引入创建表的实列 实现mongoose的增删改查
const Person = require('../dbs/modules/person')
//路由添加前缀  localhost:8080/users/
router.prefix('/users')

2、增,将数据写入数据库

基本语法(增):new 表名称({字段名:数据一,字段名:数据二})

基本语法(保存):数据库名称.save()

//将数据写入数据库
router.post('/addPerson',async (ctx)=>{//通过在控制台输入指令:curl -d 'name=faker&age=20' http://localhost:8080/users/addPerson
  const person = new Person({//给表填入对应的数据
      name:ctx.request.body.name,
      age:ctx.request.body.age
  })
    let code
   try {
       await person.save()//存储数据
       code = 0
   }catch (e) {
       code = -1
   }
   ctx.body={code}
})

3、查,读取数据库中的内容

基本语法1(查找一条返回最先找到的一条):数据表名称(表对象).findOne({字段名称:字段对应的数据,字段名称2:字段对应的数据2}) //findOne里面的对象为 想要查询的数据条件;

基本语法2(查找到所有符合条件的):数据表名称 (表对象).find({条件})

//读取数据库中的内容
router.post('/getPerson',async (ctx)=>{//$ curl -d 'name=faker' http://localhost:8080/users/getPerson
    const result = await Person.findOne({name:ctx.request.body.name})//找到数据据中的一个数据
  const results = await Person.find({name:ctx.request.body.name})//找到数据库中复合条件的所有数据
    ctx.body = {
        code:0,
        result,
        results
    }
})

4、改,更新数据

基本语法:表名称(表对象).where({

字段名称1:字段对应的数据1,

字段名称2:字段对应的数据2

}).update({

字段名称:字段更新的内容

})

简单说:表名称.where({更新的条件}).uodate({更新的内容})

//更新数据
router.post('/updatePerson',async (ctx)=>{// curl -d 'name=marin&age=312' http://localhost:8080/users/updatePerson
  const result = await Person.where({//根据where中的条件,去改变那对应的数据
      name:ctx.request.body.name
  }).update({
      age:ctx.request.body.age
  })
    ctx.body={
    code:0
    }
})

5、删,删除数据

基本语法:表名称.where({删除数据的条件}).remove()

//删除数据
router.post('/removePerson',async (ctx)=>{
  const result = await Person.where({
      name:ctx.request.body.name,
      age:ctx.request.body.age
  }).remove()
    ctx.body={
    code:0
    }
})

猜你喜欢

转载自blog.csdn.net/memedadexixaofeifei/article/details/88095800