对比 | 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) 。