.NET 云原生架构师训练营(模块二 基础巩固 MongoDB 介绍和基础)--学习笔记

2.5.1 MongoDB -- 介绍

  • mysql vs mongo
  • 快速开始

mysql vs mongo

对比 mysql mongo
数据存储 table 二维表结构,须要预先定义结构 json 类文档,不须要预先定义结构。可随意新增或删除字段,新增字段不会对已存在的字段产生影响
查询语法 sql (structured query language) mongo
索引 若是不定义索引,则进行全表扫描 若是不定义索引,则进行全表扫描
集群 支持主从复制 内置副本集、分片、和自动选举
场景 关系型结构,在多行插入时须要事务保障 实时数据分析、内容管理、iot设备、移动设备(事务须要有内置副本才能够作)
数据结构 结构化、数据 schema 定义清晰 未知数据结构类型
风险 sql 注入攻击 相对来讲风险更低
分析 确实须要关系型数据库来保障 写入并发高,没有 DBA

快速开始

安装 mongo in dockerhtml

docker run -it --volume=/root/docker/mongo01/data:/data/db -p 27017:27017 --name mongo01 -d mongo

robt 3t 下载地址:
https://download.studio3t.com/robomongo/windows/robo3t-1.4.2-windows-x86_64-8650949.exejava

新增数据库books,新增集合authormysql

增删改查linux

// 插入
db.author.insertOne({"name":"mingson", "age":25}) 
db.author.insertOne({"name":"jesse", "age":18}) 
db.author.insertOne({"name":"bobo", "age":18})

// 查询 
db.getCollection('author').find({"name":"mingson"})
db.getCollection('author').find({"name":{$eq:"mingson"}})

// 更新
db.author.updateOne({"name":"mingson"},{$set:{"age":20}})

// 删除
db.author.deleteOne({"name":"bobo"})

// 返回字段,1返回,0不返回
db.getCollection('author').find({"name":"mingson"},{"name":1,"_id":0})

2.5.2 MongoDB -- 基础

mongo db 文档:
https://docs.mongodb.com/manual/introduction/sql

中文 mongo db 手册:
https://mongoing.com/docs/tutorial/insert-documents.htmlmongodb

数据库/集合/文档

database/collection/documentdocker

mongo mysql
database database
collection table
document row
filed column

数据库

  • 数据库的名称是大小写敏感
不能包含如下字符(win):/\."$*<>:|?
不能包含如下字符(unix/linux):/\."$
  • 不能超过64个字符

集合

  • 不能包含$
  • 不能为空,不能包含null
  • 不能以system.开头

字段名

  • 不能为空,不能包含null
  • 顶级字段不能以$开头
  • _id是保留字段名称

BosnTypes

https://mongoing.com/docs/reference/bson-types.html数据库

string string
bool Boolean
int int
long long
decimal decimal
double double
date date
timestamp timestamp
null null
  • object
  • array
  • objectid
  • regex
  • javascripe

知识共享许可协议

本做品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。json

欢迎转载、使用、从新发布,但务必保留文章署名 郑子铭 (包含连接: http://www.cnblogs.com/MingsonZheng/ ),不得用于商业目的,基于本文修改后的做品务必以相同的许可发布。windows

若有任何疑问,请与我联系 (MingsonZheng@outlook.com) 。

相关文章
相关标签/搜索