.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) 。

相關文章
相關標籤/搜索