mongoDB非关系型数据库学习记录

一、简介

1.1Mongodb是什么

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

1.2数据库是什么

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

1.3数据库的作用

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

1.4数据库管理数据的特点

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

  1. 速度更快
  2. 扩展性更强
  3. 安全性更强

二、核心概念

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

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

    大家可以通过JSON文件来理解Mongodb中的概念
  • 一个JSON文件好比是一个**数据库,**一个Mongodb服务下可以有N个数据库
  • JSON文件中的一级属性 的数组值好比是集合
  • 数组中的对象好比是文档
  • 对象中的属性有时也称之为字段

mongoDB的下载安装与启动

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

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

配置步骤如下:

1>将压缩包移动到C:\ProgramFiles下,然后解压

2>创建C:\data\db目录,mongodb会将数据默认保存在这个文件夹

3>以mongodb中bin目录作为工作目录,启动命令行

运行命令mongod

看到最后的waiting for connections则表明服务已经启动成功

注意:

  • 为了方便后续方便使用mongod命令,可以将bin目录配置到环境变量Path中
  • 千万不要选中服务端窗口的内容,选中会停止服务,可以敲回车耳汉消选中

数据库与集合命令

4.1数据库命令

  1. 显示所有的数据库
shell 复制代码
show dbs
  1. 切换到指定的数据库,如果数据库不存在会自动创建数据库
shell 复制代码
use 数据库名
  1. 显示当前所在的数据库
shell 复制代码
db
  1. 删除当前数据库
shell 复制代码
use 库名
db.dropDatabase()

4.2集合命令

  1. 创建集合
shell 复制代码
db.createCollection('集合名称')
  1. 显示当前数据库中的所有集合
shell 复制代码
show collections
  1. 删除某个集合
shell 复制代码
db.集合名.drop()
  1. 重命名集合
shell 复制代码
db.集合名.renameCollection('newName')

4.3文档命令

  1. 插入文档
shell 复制代码
db.集合名.insert(文档对象);
  1. 查询文档
shell 复制代码
db.集合名.find(查询条件)

_id是mongodb自动生成的唯一编号,用来唯一标识文档 3. 更新文档

shell 复制代码
db.集合名.update(查询条件,新的文档)
db.集合名.update({name:'张三'},{$set:{age:19}})
  1. 删除文档
shell 复制代码
db.集合名.remove(查询条件)

4.4 应用场景

4.4.1新增

用户注册

发布视频

发布商品

发朋友圈

发评论

发微博

发弹幕

4.4.2删除

删除评论

删除商品

删除文章

删除视频

删除微博

4.4.3更新

更新个人信息

修改商品价格

修改文章内容

4.4.4查询

商品列表

视频列表

朋友圈列表

微博列表

搜索功能

相关推荐
livemetee9 分钟前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
INS_KF1 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
Easocen1 小时前
Mybatis学习笔记(五)
笔记·学习·mybatis
丑小鸭是白天鹅3 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
楼田莉子4 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
奶黄小甜包6 小时前
C语言零基础第18讲:自定义类型—结构体
c语言·数据结构·笔记·学习
竹照煜_ysn7 小时前
STM32——软硬件I2C
stm32·嵌入式硬件·mongodb
rannn_1118 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面9 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
传奇开心果编程9 小时前
【传奇开心果系列】Flet框架实现的家庭记账本示例自定义模板
python·学习·ui·前端框架·自动化