# MongoDB 初识

# 介绍

# 重要概念

MongoDB 是一个文档型数据库,属于 NoSQL 数据库,不需要使用 SQL 语句,易学易用

MongoDB 的数据是以 BSON 格式进行存储

BSON 是一种类 json 的一种二进制形式的存储格式,简称 Binary JSON,它和 JSON 一样,支持内嵌的文档对象和数组对象,但是 BSON 有 JSON 没有的一些数据类型,如 Date 和 BinData 类型

BSON 有三个特点:轻量性可遍历性高效性

MongoDB 以文档形式存储数据,每个文档的格式类似于 JSON

# 层级关系

库(database) > 集合(collection) > 文档(document)

# MongoDB 与 MySQL、Redis 的区别

名称 类型 存储方式 操作 存储位置
MySQL 关系型 表格形式存储 SQL 操作 计算机硬盘
Redis 非关系型 key-value 形式存储 NoSQL 操作 计算机内存
MongoDB 非关系型 文档形式存储 NoSQL 操作 计算机硬盘

# 命令行操作

# 基本操作

show dbs # 查看所有数据库
use <dbName> # 切换数据库,如果没有则会自动创建
show collections # 查看数据库中的集合
db.<collection>.drop() # 删除集合包括集合的内容
1
2
3
4

# 查询操作


1

# 查询示例

# 查询集合中的所有文档
db.<collection>.find()

# 查询age为18的文档
db.<collection>.find({"age":18})

# 查询所有,然后进行排序,排序默认为升序
db.<collection>.find().sort({_id:-1}) # 按照_id降序排列
1
2
3
4
5
6
7
8

# 插入操作

注意:如果在未创建的集合中插入文档,则会自动创建该集合并插入文档

# 插入示例

# 插入单条数据
db.<collection>.insert({"name":"123木头人"})

# 插入多条数据
db.<collection>.insert(
	{"name":"123木头人"},
	{"age":18},
	{"content":"123456789"}
)
1
2
3
4
5
6
7
8
9

# 更新操作

# 更新示例

db.<collection>.update(
	{"属性1":"属性值1"}, # 更新条件
	{"$set":{"属性值1":"属性值1"}} # 更新的内容
)
1
2
3
4

# 删除操作

# 删除示例

# 删除条件
db.<collection>.remove({"属性1":"属性值1"})
1
2

# 工具使用

# mongodb 安装

npm i mongodb
1

# 使用示例

const MongoClient = require('mongodb').MongoClient
const url = 'mongodb://localhost:27017'
const dbName = 'myblog'

MongoClient.connect(
    url,
    { useUnifiedTopology: true }, // 配置
    (err, client) => {
        if (err) {
            return console.error(err)
        }
        // 连接成功
        console.log('mongodb connect success')
        // 切换数据库
        const db = client.db(dbName)
        // 使用集合
        const usersCollection = db.collection('users')
        // 添加
        usersCollection
            .insertOne({
                username: 'admin',
                password: '123456',
                realName: '123木头人'
            })
            .then(res => {
                console.log(res)
            })
            .catch(err => {
                console.error(err)
            })
        // 删除
        usersCollection
            .deleteOne({ a: 100 })
            .then(res => {
                console.log(res)
            })
            .catch(err => {
                console.error(err)
            })
        // 修改
        usersCollection
            .updateOne({ id: '9527' }, { $set: { id: 9527 } })
            .then(res => {
                console.log(res)
            })
            .catch(err => {
                console.error(err)
            })
        // 查询
        usersCollection
            .find({
                // num: 10
            })
            .toArray()
            .then(res => {
                console.log(res)
            })
            .catch(err => {
                console.error(err)
            })
    }
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

# Mongoose 安装

npm i mongoose
1

# 概述

Schema 定义数据格式的规范

以 Model 规范 Collection

规范数据操作的 API

# 使用示例

最后更新时间 : 3 天前