對比 | 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})
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):/\."$
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 |
本做品採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。json
歡迎轉載、使用、從新發布,但務必保留文章署名 鄭子銘 (包含連接: http://www.cnblogs.com/MingsonZheng/ ),不得用於商業目的,基於本文修改後的做品務必以相同的許可發佈。windows
若有任何疑問,請與我聯繫 (MingsonZheng@outlook.com) 。