MongoDB安装完整版
数据库种类
关系型:
MySQL、MariaDB、PostgreSQL、Microsoft SQL Server、Oracle、Sybase
非关系型数据库:
|
分类
|
相关产品
|
应用场景
|
数据模型
|
优点
|
缺点
|
|
键值数据库
|
内容缓存,如会话、配置文件、参数等;
频繁读写、拥有简单数据模型的应用
|
<key,value> 键值对,通过散列表来实现
|
扩展性好,灵活性好,大量操作时性能高
|
数据无结构化,通常只被当做字符串或者二进制数据,只能通过键来查询值
|
|
|
列族数据库
|
Bigtable、HBase、Cassandra
|
分布式数据存储与管理
|
以列族式存储,将同一列数据存在一起
|
可扩展性强,查找速度快,复杂性低
|
功能局限,不支持事务的强一致性
|
|
文档数据库
|
MongoDB、CouchDB
|
Web 应用,存储面向文档或类似半结构化的数据
|
<key,value>
value 是 JSON 结构的文档
|
数据结构灵活,可以根据 value 构建索引
|
缺乏统一查询语法
|
|
图形数据库
|
Neo4j、InfoGrid
|
社交网络、推荐系统,专注构建关系图谱
|
图结构
|
支持复杂的图形算法
|
复杂性高,只能支持一定的数据规模
|
非关系型数据库也叫Nosql数据库,全称是not noly sql。
MongoDB和关系型数据库的对应关系:
|
MongoDB
|
SQL
|
|
database数据库
|
database数据库
|
|
collection集合
|
table表
|
|
document文档
|
row 行
|
|
filed字段
|
column列
|
|
index索引
|
index索引
|
|
不支持多表连接查询
|
支持多表连接查询
|
MongoDB是什么:
MongoDB是一个通用的、基于文档的分布式数据库,是为现代应用开发人员和云时代构建的。
能解决的问题:
旨在为WEB应用提供可扩展的高性能数据存储解决方案,MongoDB支持的数据结构非常松散,它将数据存储在类似JSON的文档中,因此可以存储比较复杂的数据类型。
它的特点是:
高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
*面向集合存储,易存储对象类型的数据。
*模式自由。
*支持动态查询。
*支持完全索引,包含内部对象。
*支持查询。
*支持复制和故障恢复。
*使用高效的二进制数据存储,包括大型对象(如视频等)。
*自动处理碎片,以支持云计算层次的扩展性。
*支持RUBY,PYTHON,JAVA,C ,PHP,C#等多种语言。
*文件存储格式为BSON(一种JSON的扩展)。
*可通过网络访问。
适用场景
MongoDB 的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)和传统的RDBMS 系统(具有丰富的功能)之间架起一座桥梁,它集两者的优势于一身。根据官方网站的描述,Mongo 适用于以下场景。
● 网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
● 缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo 搭建的持久化缓存层可以避免下层的数据源过载。
● 大尺寸、低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
● 高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库,Mongo 的路线图中已经包含对MapReduce 引擎的内置支持。
● 用于对象及JSON 数据的存储:Mongo 的BSON 数据格式非常适合文档化格式的存储及查询。
不适场景
● 高度事务性的系统:例如,银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
● 传统的商业智能应用:针对特定问题的BI 数据库会产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。
● 需要SQL 的问题。
怎么做:
安装:
1.下载地址:https://www.mongodb.com/try
2.安装:
出现的问题:
一直卡在这里。不动弹。
重新安装
取消勾选。
重新安装出错。
结束掉之后重装。
重新安装成功
下载可视化工具就是刚才安装失败的工具:
解压运行
连接MongoDB
mongodb://localhost/
连接成功
MongoDB的使用
命令:
cd C:\Program Files\MongoDB\Server\4.0\bin
连接MongoDB
mongo 127.0.0.1:27017
mongo
mongo 127.0.0.1:27017/库名
常用命令:
show dbs //列出所有的数据库
db //当前所在数据库
use 库名 //切换或者新建数据库,切换数据库时如果数据库不存在,则会创建它,创建集合后才会有实际的表出现
show tables //显示所有集合,和下面命令一样的效果
show collections //显示所有集合
db.users.insert({"usernmae": "mengdee", "age": 26}) //隐式创建集合,没有users集合会自动创建
db.createCollection("address") //直接创建集合
db.address.drop() //删除address这个集合
db.集合名字.insert({"aa":"bb"}) //插入一条数据
db.集合名字.insert([{"aa":"bb"}, {"aa":"bb"}])//批量插入
db.users.findAndModify({ "query": {"username": "bbb"}, "update": {"username": "测试", "age": 26}, "upsert": true }) //查询是否有{"username": "bbb"},如果有,则修改,如果没有就新加,如果有多条,修改第一条。
db.users.save({ "_id" : 3, "mengday9" : 20}) //功能和findAndModify类似,但是又不同,save只能根据_id来判断是否重复。
具体操作符查看:操作符合集.note
图形界面:
创建新的库
插入文档/行Document
{
"title": "MongoDB 教程",
"description":"MongoDB 是一个 Nosql 数据库",
"by":"菜鸟教程",
"url":"http://www.runoob.com",
"tags": "['mongodb', 'database', 'NoSQL']"
}
插入多条:
[{},{},{}]
查询:
filter:类似sql命令中where后面的条件,注意格式要写成键值对形式,键指字段值。
project:投影,只显示指定的数据
sort:顾名思义指排序方式,输入的也是键值对形式,键指要排序的字段,值可以写1或-1,规定是升序(1)还是降序(-1)。
Collation:Collation特性允许MongoDB的用户根据不同的语言定制排序规则
Collation具体教程:https://mongoing.com/archives/3912
例子:
1.
{title:"我的世界"}
2.带操作符查询
3.投影
另外:看国外对中国的看法:www.mcqi.cn
欢迎你的加入
原贴地址:
我的世界腐竹相关笔记/服务器加Q群:379464960
我的世界MC起源论坛:http://www.ricemc.cn
看国外对中国的看法:http://www.mcqi.cn

浙公网安备 33010602011771号