MongoDB是一个免费的、开源的、跨平台分布式面向文档存储的数据库,由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。sql
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构很是松散,是相似json的bson格式,所以能够存储比较复杂的数据类型。Mongo最大的特色是它支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。mongodb
官网:https://www.mongodb.com/docker
官方镜像地址:https://hub.docker.com/_/mongoshell
Powershell:数据库
docker run -p 27017:27017 --name myMongodb `json
-d mongo缓存
PowerShell:服务器
docker run -p 27017:27017 --name myMongodb `数据结构
-v d:/temp/data/mongodb:/data/db `nosql
-d mongo
执行以后以下图所示:
注意:Windows和OS X上的Docker默认设置使用VirtualBox VM来托管Docker守护程序。可是,VirtualBox用于在主机系统和Docker容器之间共享文件夹的机制与MongoDB使用的内存映射文件不兼容(请参阅vbox bug,docs.mongodb.org和相关的jira.mongodb.org错误),这意味着没法运行映射到主机的数据目录的MongoDB容器。
nosqlbooster以shell为中心的跨平台GUI的MongoDB管理工具,它提供全面的服务器监控工具,流畅的查询构建器,SQL查询支持,ES2017语法支持和真正的智能感知体验,是很是值得推荐的一个MongoDB管理工具。
很是值得推荐的是,NoSQLBooster支持咱们使用SQL查询语法来执行查询(MongoDB自己不支持,是由NoSQLBooster进行了验证和转换处理)。
例如如下MongoDB查询语法:
db.employees.aggregate([{
$group: { _id: "$department", total: { $sum: "$salary" }}
}])
可使用咱们熟悉的SQL查询语法来查询:
mb.runSQLQuery(`
SELECT department, SUM(salary) AS total FROM employees GROUP BY department
`)
这里附上一个MySql和MongoDB的语法对比示例:
同时,NoSQLBooster还提供丰富的性能监视和分析工具,如Visual Explain Plan:
MongoDB Compass是MongoDB的可视化工具,适用于Linux,Mac或Windows,可以很是直观的查看和管理数据,而且能够轻松识别可能致使性能问题的瓶颈或慢查询,这意味着咱们能够更快地解决问题。