Node.js -- MongoDB

文章目录

  • [1. 相关介绍](#1. 相关介绍)
  • [2. 核心概念](#2. 核心概念)
  • [3. 命令行交互](#3. 命令行交互)
    • 3.1数据库命令
    • [3.2 集合命令](#3.2 集合命令)
    • [3.3 文档命令](#3.3 文档命令)
  • [4. 数据库应用场景](#4. 数据库应用场景)
    • [4.1 新增](#4.1 新增)
    • [4.2 删除](#4.2 删除)
    • [4.3 更新](#4.3 更新)
    • [4.4 查询](#4.4 查询)
  • [5. 图形化工具Robo 3T](#5. 图形化工具Robo 3T)

1. 相关介绍

一、简介

  1. Mongodb是什么

MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com/try/download/community

  1. 数据库是什么

数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序

  1. 数据库的作用

数据库的主要作用就是管理数据,对数据进行增(c)删(d)改(u)查(r)

  1. 数据库管理数据的特点

相比于纯文件管理数据,数据库管理数据有如下特点:

  • 速度更快
  • 扩展性更强
  • 安全性更强
  1. 为什么选择Mongodb

操作语法与JavaScript类似,容易上手,学习成本低

2. 核心概念

Mongodb中有三个重要概念需要掌握

  • 数据库(database)数据库是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合
  • 集合(collection)
    集合类似于JS中的数组,在集合中可以存放很多文档
  • 文档(document)
    文档是数据库中的最小单位,类似于JS中的对象

数据库中有属性,属性对应的值叫做集合,而集合中的对戏那个就是一个文档。

大家可以通过JSON文件来理解Mongodb中的概念

  • 一个JS0N文件好比是一个数据库,一个Mongodb服务下可以有N个数据库
  • JSON文件中的一级属性的数组值好比是集合
  • 数组中的对象好比是文档
  • 对象中的属性有时也称之为字段

一般情况下

  • 一个项目使用一个数据库
  • 一个集合会存储同一种类型的数据

下载地址:https:/www.mongodb.com/try/download/community

建议选择zip类型,通用性更强

配置步骤如下:

  1. 将压缩包移动到C:\Program Files下,然后解压
  2. 创建c:\data\db目录,mongodb会将数据默认保存在这个文件夹
  3. 以mongodb中bin目录作为工作目录,启动命令行
  4. 运行命令mongod,启动服务

我们一般发送的是http 协议,但是mongo 数据库发送的是mongo 协议,我们需要在打开mongodb 的同时再打开一个cmd 窗口,输入mongo ,出现下面的情况就证明我们的服务端和客户端建立了连接。

show dbs

展示可用的数据库

不能选中服务端内容,如果被选中的话就相当于停止了服务;如果选中可以按回车

3. 命令行交互

命令行交互一般是学习数据库的第一步,不过这些命令在后续用的比较少,所以大家了解即可

3.1数据库命令

  1. 显示所有的数据库

show dbs

  1. 切换到指定的数据库,如果数据库不存在会自动创建数据库

use 数据库名

  1. 显示当前所在的数据库

db

  1. 删除当前数据库

use 库名 --> 先切换到删除的数据库

db.dropDatabase() --> 删除当前数据库

3.2 集合命令

  1. 创建集合

db.createCollection('集合名称')

  1. 显示当前数据库中的所有集合

show collections

集合名称一般都写复数

  1. 删除某个集合

db.集合名.drop()

  1. 重命名集合

db.集合名.renameCollection('newName')

3.3 文档命令

  1. 插入文档

db.集合名.insert(文档对象)

  1. 查询文档

db.集合名.find(查询条件)

  1. 更新文档

db.集合名.update(查询条件,新的文档)

db.集合名.update({name:'张三'},{$set:{age:19}})

默认更新全部数据

  1. 删除文档

db.集合名.remove(查询条件)

4. 数据库应用场景

4.1 新增

  • 用户注册
  • 发布视频
  • 发布商品
  • 发朋友圈
  • 发评论
  • 发微博
  • 发弹幕
  • ...

4.2 删除

  • 删除评论
  • 删除商品
  • 删除文章
  • 删除视频
  • 删除微博
  • ...
    某些项目会设置例如is_deleted 属性,如果属性值为true,数据就会被删除,但是如果为false ,可能就为伪删除,可以实现用户的某些误删数据的恢复

4.3 更新

  • 更新个人信息
  • 修改商品价格
  • 修改文章内容
  • ...

4.4 查询

  • 商品列表
  • 视频列表
  • 朋友圈列表
  • 微博列表
  • 搜索功能
  • ...

5. 图形化工具Robo 3T

我们可以使用图形化的管理工具来对Mongodb进行交互,这里演示两个图形化工具
Robo 3T 免费
https://github.com/Studio3T/robomongo/releases
Navicat 收费
https://www.navicat.com.cn/

相关推荐
编程老船长3 小时前
第26章 Java操作Mongodb实现数据持久化
数据库·后端·mongodb
丁总学Java5 小时前
微信小程序-npm支持-如何使用npm包
前端·微信小程序·npm·node.js
看到请催我学习7 小时前
如何实现两个标签页之间的通信
javascript·css·typescript·node.js·html5
NiNg_1_23411 小时前
npm、yarn、pnpm之间的区别
前端·npm·node.js
余生H12 小时前
前端的全栈混合之路Meteor篇:关于前后端分离及与各框架的对比
前端·javascript·node.js·全栈
Ink13 小时前
从底层看 path.resolve 实现
前端·node.js
fishmemory7sec13 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
奔跑吧邓邓子15 小时前
npm包管理深度探索:从基础到进阶全面教程!
前端·npm·node.js
缘友一世18 小时前
macos安装mongodb
数据库·mongodb·macos
知否技术1 天前
为什么nodejs成为后端开发者的新宠?
前端·后端·node.js