MongoDB(二)——备份还原,mongoose,接口,apidoc文档

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 是node中提供操作MongoDB的模块能够通过node语法实现MongoDB数据库增删改查实现用node写程序来管理MongoDB数据库‘可以通过执行 npm i mongoose或 yarn add mongoose的命令安装
接上篇

七、备份还原

  1. 备份数据库mongodump
导出语法:mongodump -h -port -u -p -d -o
-h         host      服务器IP地址(一般不写 默认本机
-port                端口(一般不写 默认27017
-u          user      账号
-p            pwd     密码
-d           database   数据库(数据库不写则导出全局
-o           open      备份到指定目录下

2.还原数据库mongorestore

导出语法:
mongorestore -h -port -u -p -d --drop 备份数据目录

-h         host      服务器IP地址(一般不写 默认本机
-port                端口(一般不写 默认27017
-u          user      账号
-p            pwd     密码
-d           database   数据库(数据库不写则导出全局
--drop                 备份数据目录

八、mongoose

  1. 简介
是node中提供操作MongoDB的模块

能够通过node语法实现MongoDB数据库增删改查

实现用node写程序来管理MongoDB数据库‘

可以通过执行 npm i mongooseyarn add mongoose的命令安装

  1. schema

用来约束MongoDB文档数据(哪些字段是必须的,哪些字段可选的)

英文网:http://mongoosejs.com

中文网:http://mongoosejs.net/

model

一个模型对应一个集合

通过模型来管理集合中的数据

核心概念

schema约束字段/列数据

model 模型 对应集合 后期用它来实现数据

  1. 使用

下面实例可供参考

实例:

// 导入模块
const mongoose=require("mongoose")
// 连接数据库

const db=mongoose.createConnection('mongodb://shop2:admin888@localhost:27017/test2',{useNewUrlParser:true,useUnifiedTopology:true},err =>{
    if(err) {
        console.log("--------------")
        console.log("数据库连接失败:",err)
        console.log('---------------')
        return
    }
    console.log("数据库连接成功");
})

// 设置数据类型(声明是那个集合,限制字段个数和字段类型)
const model=db.model('api',{
    uname:{type:String,default:"神龙教主"},
    pwd:{type:String},
    age:{type:Number},
    sex:{type:String}
})

🔔增删改查:

(1)增

const insertObj=new model(数据对象)

方法1:
            insertObj.save((err)=>db.close())

🧨方法2:(推荐)

insertObj.save()
.then(res=>{
    return res
    })
    .catch(err=>{
    console.log("插入失败"+err)
    return false
    })

方法1:           

model.remove/deleteOne/deleteMany(条件对象,(err)=>db.close())

🧨方法2:

model.deleteOne(条件对象)
.then(res=>{
    return  res.deletedCount
})
.catch(err=>{
    console.log("删除失败"+err)
    return false
})

方法1:

model.update/updateOne/updateMany(条件对象,数据对象,(err)=>db.close())

🧨方法2:

model.updateOne(条件对象,数据对象)
.then(res=>{
    return  res.nModified
})
.catch(err=>{
    console.log("修改失败"+err)
    return false
})

方法1:

model.find/findOne(条件对象,要显示的字段数据对象,(err,result)=>{
db.close())

🧨方法2:

model.find({})
.then(res=>{
    console.log(res)
    db2.close()
    return res
})
.catch(err =>{
    console.log(err)
    return false
})
// -------分页------
model.find({}).skip(1).limit(1)
.then(res=>{
    console.log(res)
    db2.close()
    return res
})
.catch(err =>{
    console.log(err)
    return false
})

九、接口

🎗 1. 概念

接口就是一个文件(js\json\php)等,主要响应JSON数据(c操作方便,体积小)或XML数据
{
    status:1/0,
    msg:"提示信息"
}
--
<xml>
<status>1/0</status>
<msg>提示信息</msg>
</xml>
  • 只要响应json数据所有语言都可以操作,
{
    meta:{
        msg:提示信息,
        status:状态码(200/201/301/302/400/401/403/404/500)
    },
    data:数据
}

🎗2. 作用

数据角度:让我们的项目静态/固态数据动态(也就是让项目数据来源于数据库)

  • 为什有接口:

一次编写,多次/随时接入()

  • 什么是接口

就是一个文件,但是你必须返回Json或xml数据

  • 接口能干吗

(1)-数据角度:页面数据动态 ,

(2)-功能角度:短信接口等


🎗3. 接口使用规范(Restful API)

  • Restful是目前最流行的一种互联网软件架构
  • 声明或提供了接口设计原则和约束条件
  • 相关
后续将资源发布到URL上- > 前端通过URL访问资源-> 并通过HTTP动词表示要对资源进行的操作后端定义接口 ->前端请求接口-> HTTP动词表名操作目的(get获取post 新建put更新等)
  • 举例
列表页:访问- /模块名(get)

详情页:访问- /模块名/编号(get)

添加页:访问- /模块名create(get)

处理: 访问- /模块名(post)

修改页:访问- /模块名/编号(get)

处理:访问- /模块名/编号(put )

删除:访问- /模块名/编号(delete)

HTTP动词:get .post,put,delete

标准的RESTful架构/思想/规则需要做到

订单模块
/order   get
/order  post
/order/编号   put
/order/编号    delete
  • 项目所有模块有统一的标准
  • 看URL就知道要操作的资源是什么(也就是那个模块)
  • 看就知道操作的动作是什么,是添加(post)还是删除(delete)
  • 看Http Status Code就知道操作结果如何,是成功(200)还是内部错误(500)

🎗 4. 接口测试工具

postman模拟HTTP请求,测试接口,查看接口返回数据

https://www.postman.com/

在这里插入图片描述

十、apidoc文档

🎗1. 简介

实战开发中后端会开发很多很多接口,每个接口都需要大量的参数,可以通过接口文档

apidoc是nodejs中的一个模块,通过这个模块可以快速生成接口文档,前提是写接口的时候把注释加上

可以在这个链接里下载:

https://apidocjs.com/#configuration


🎗2. 使用

🧨步骤1:先下载模块,后期通过命令基于注释生成文档(仅一次

npm install apidoc -g

🧨步骤2:在项目根目录创建apidoc.json文件(仅一次

{
    "name":"example",
    "version":"0.1.0",
    "description":"apiDoc basic example",
    "title":"Custom apiDoc brower title",
    "url":"https://api.github.com/v1"
}
{
    "name":"教学管理系统接口文档",
    "version":"1.0.0",
    "description":"一个接口文档",
    "title":"Custom apiDoc brower title",
    "url":"http://localhost:3000"
}

🧨步骤3:去写接口注释(n次

/**
 * @api {get} /user/:id Request User information
 * @apiName GetUser
 * @apiGroup User
 *
 * @apiParam {Number} id Users unique ID.
 *
 * @apiSuccess {String} firstname Firstname of the User.
 * @apiSuccess {String} lastname  Lastname of the User.
 */

🧨步骤四:生成接口文档(N次)

apidoc -i ./接口注释目录 -o ./接口文档存放目录

在这里插入图片描述

在这里插入图片描述

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
1月前
|
存储 NoSQL MongoDB
MongoDB拆分大文档、嵌入文档
【7月更文挑战第6天】
30 0
|
3月前
|
存储 NoSQL 安全
【MongoDB 专栏】MongoDB 的备份与恢复策略
【5月更文挑战第11天】MongoDB的备份与恢复至关重要,确保数据安全、完整和可用。数据库提供文件级和逻辑备份,前者简单直接但可能需短暂停机,后者灵活可选特定数据。备份策略要考虑频率和存储位置,恢复时要验证数据完整性,选择合适恢复点。增量和差异备份可提升效率,监控管理备份是必要环节。案例显示,有效策略能降低意外损失。随着技术发展,应持续优化策略,强化人员培训,以责任和使命对待备份恢复,保障企业数据环境的安全稳定。
69 1
【MongoDB 专栏】MongoDB 的备份与恢复策略
|
3月前
|
存储 NoSQL 数据管理
【MongoDB 专栏】MongoDB 文档模型详解
【5月更文挑战第10天】MongoDB 是一种流行的 NoSQL 数据库,以其灵活的文档数据模型著称。文章介绍了文档的基本概念、结构及操作,包括插入、查询、更新和删除。文档特点是灵活且可扩展,适合存储不同结构的数据。优势在于简化数据建模、提升开发效率并适应动态数据。应用场景包括用户信息、日志记录和电商数据管理。但需注意数据一致性和文档大小对性能的影响。理解文档模型有助于高效利用 MongoDB。
63 1
【MongoDB 专栏】MongoDB 文档模型详解
|
3月前
|
NoSQL MongoDB 数据库
通过优化索引以消除 MongoDB 中的 "查询目标已超过1000个扫描对象/返回的文档数" 警告
MongoDB NoSQL数据库在处理复杂查询时可能出现“查询目标已超过1000个扫描对象/返回的文档数”警告。文章分析了该问题,展示了一个示例集合和相关索引,并提供了查询示例。通过`explain`命令发现查询未有效利用索引。解决方案是遵循ESR规则,创建新索引从而优化查询并消除警告。
102 1
|
2月前
|
NoSQL BI MongoDB
MongoDB 数据探索之道:查询文档操作详解
MongoDB 数据探索之道:查询文档操作详解
|
2月前
|
NoSQL 安全 MongoDB
MongoDB 数据精简指南:删除文档操作详解
MongoDB 数据精简指南:删除文档操作详解
|
2月前
|
NoSQL MongoDB 数据库
MongoDB 更新文档:灵活修改数据,实时响应需求变化
MongoDB 更新文档:灵活修改数据,实时响应需求变化
|
2月前
|
存储 JSON NoSQL
MongoDB 插入文档:轻松管理数据录入与批量导入
MongoDB 插入文档:轻松管理数据录入与批量导入
|
2月前
|
NoSQL 测试技术 MongoDB
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧

热门文章

最新文章