【前端29_Mongo】芒果数据库使用及常用操作、Mongoose 对数据的增删改查

本文主要是介绍【前端29_Mongo】芒果数据库使用及常用操作、Mongoose 对数据的增删改查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 非关系性数据库:Mongo
    • Mongo
      • 介绍
      • 举个栗子:教学
      • 常用操作
        • 连接数据库
        • 查看所有数据库
        • 切换数据库
        • 展示数据库中的集合
        • 展示集合中的所有文档
        • 删除集合中的所有文档
    • Mongoose 插件
      • 建立文档结构 Schema
      • 操作
        • 添加数据
        • 删除数据
        • 查数据
        • 修改数据

非关系性数据库:Mongo

Mongo

介绍

  • 是一种非关系性数据库,不像MySQL那样有很多条条框框的约束,想怎么存就怎么存。
  • 什么叫数据库,集合,文档?请看下面的栗子。

举个栗子:教学

  • 前提:我想创建一个论坛,论坛里又有很多用户,所以我需要一个论坛数据库,其中还要一个用户集合(表)。
    在这里插入图片描述
  • 然后切换数据库,并查看当前数据库中的集合在这里插入图片描述
  • 我们可以通过db.集合名.find()方法查看集合中的所有文档(集合中的每条信息叫做文档)

常用操作

连接数据库
mongo
查看所有数据库
show dbs
切换数据库
use 数据库名称
展示数据库中的集合
show collections
展示集合中的所有文档
db.users.finds()
删除集合中的所有文档
> db.users.drop()
true

Mongoose 插件

官方定义如下:编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以我们发明了Mongoose.

我个人的理解:就是类似JavaScriptjQuery 的关系。Mongoose相当于jQuery

  • 数据库是不需要输入命令的时候建立的,它是在你插入数据的时候就给你建立

建立文档结构 Schema

  • 用户表中的用户信息不能是没有规律的吧,需要有用户名,性别,年龄等等信息,我们需要这样一个规范,用来更好的设计,储存数据库,方便以后的查阅,这就引入了文档结构 Schema
  • 类似一下的感觉
    在这里插入图片描述
  • 首先在后台中,新建一个文件夹,叫啥随便你,这个文件夹作用是:用来存储文档的格式,也就是规定了每条数据都有啥属性。
  • 这个js文件连接了数据库,并且引入了mongoose 插件
  • 记得最后要导出,导出的名字不要写成复数,也就是我上图中的 module.exports = User,因为插件会帮你转成复数
const mongoose = require('mongoose')
const dbName = 'myWeibo'mongoose.connect(`mongodb://localhost:27017/${dbName}`, {useNewUrlParser: true, useUnifiedTopology: true})// 设置文档结构
var Schema = mongoose.Schema;
var userSchema = new Schema({username:String,psw:String
})
const User = mongoose.model('User', userSchema)
module.exports = User

操作

添加数据
  • 需要先引入文档结构
  • 然后通过.save方法保存
// 引入用户表格式 Schema
// weiboUser 是我的文档结构的名字,你的自己看看是啥
const weiboUser = require('../module/weiboUser')
new weiboUser(需要保存的数据).save((err, ret) => {if(err){// 保存失败}else{// 保存成功}
})  
删除数据

根据条件删除文档

weiboUser.remove({'username': '王先生'},{password:'123'
}, function (err,ret) {if(err) {console.log('删除失败')} else {console.log('删除成功')console.log(ret);// { n: 1, ok: 1, deletedCount: 1 }}
})
查数据
  • 可以通过文档结构.find(查询的数据,回调函数(err, ret){})来查询数据,其中ret就是查询到的文档(数据)
  • 也可以查询一个findOne()
weiboUser.find({'username':data.username}, (err, ret) => {if(ret === null) {// 如果没查到} else {// 如果查到了}
})
修改数据

通过id来修改数据
其中的ret返回的是修改前的数据内容

// 删除
weiboUser.findByIdAndUpdate('5effddd9630b7d430c4e79aa',{psw:'123'
}, function (err,ret) {if(err) {console.log('修改失败')} else {console.log('修改成功')console.log(ret);// 他会返回修改前的数据// { _id: 5effddd9630b7d430c4e79aa, username: '王先生', psw: '1', __v: 0 }}
})

这篇关于【前端29_Mongo】芒果数据库使用及常用操作、Mongoose 对数据的增删改查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976098

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删