目录
MongoDB数据库介绍
- l名称源自“humongous”(意为“巨大无比”)
- lMongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
- l在高负载的情况下,添加更多的节点,可以保证服务器性能。
- lMongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
官方网站:https://www.mongodb.com/
开源项目:https://github.com/mongodb/
下载地址: https://www.mongodb.com/download-center/community
主要特点
- 提供了一个面向文档存储,操作起来比较简单和容易
- 可以设置任何属性的索引来实现更快的排序
- 具有较好的水平可扩展性
- 支持丰富的查询表达式,可轻易查询文档中内嵌的对象及数组
- 可以实现替换已完成文档的一些指定的数据字段
- MongoDB中的Map/Reduce主要是用来对数据进行批量处理和聚合操作
- 支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等语言
- MongoDB安装简单
数据库
- 一个Mongodb中可以建立多个数据库
- MongoDB的默认数据库为“test",该数据库存储在data目录中
- MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中
- 多个文档组成集合,而多个集合组成了数据库
- show dbs 命令可以显示所有数据库的列表
关于数据库的命名需要注意以下几点:
- 不能是空字符串("")
- 不能以$开头
- 不能含有.和空字符串。
- 数据库名字区分大小写(建议数据库名全部使用小写)
- 数据库名字长度最多64字节。
- 不要与系统保留的数据库名字相同,这些数据库包括:admin、local、 config等
适用场景
1、海量的数据存储
2、JSON格式的数据
3、高伸缩性场景
4、弱事务型业务
MongoDB更多适合于大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足Web2.0和移动互联网应用的数据存储要求。
安装MongoDB数据库
MongoDB预编译二进制包下载地址: https://www.mongodb.com/download-center/community
MongoDB Compass 是一个图形界面管理工具,可以在官网下载安装,下载地址:MongoDB Compass Download | MongoDB。
启动 MongoDB服务
只需要在MongoDB安装目录的bin目录下执行'mongod'即可
使用 MongoDB shell访问MongoDB
MongoDB Shell 使用-简介
MongoDB Shell是 MongoDB自带的JavaScript Shell,随MongoDB—同发布,它是MonoDB客户端工具,可以在Shell中使用命令与MongoDB实例交互,对数据库的管理操作(CURD、集群配置、状态查看等)都可以通过MongoDB Shell来完成。
MongoDB Shell = JavaScirpt解释器 + MongoDB客户端
使用MongoDB shell访问MongoDB
1、连接服务器
使用 MongoDB shell 来连接 MongoDB 服务器
命令行:mongo 默认port 27017
2、连接远程的mongoDB服务器
mongo “mongodb://mongodb0.example.com:27017”
3、查看所有数据库,可以使用 show dbs 命令
MongoDB Shell 使用-基本功能
1、执行JavaScript命令
2、MongoDB客户端一基本命令
- 连接/切换数据库 -- use test01;
- 数据插入 -- db.stu.insert(obj);
- 数据查询 -- db.stu.find(query);
- 数据更新 -- db.stu.update(query,obj);
- 数据删除 -- db.stu.remove(query);
MongoDB Shell 使用-使用技巧
1、help查看帮助
2、执行脚本
3、.mongorc.js 文件(位于用户主目录)
启动shell时会自动加载运行,加上--norc参数,就可以禁止加载 .mongorc.js
4、更多命令可参考
https://docs.mongodb.com/manual/reference/mongo-shell/
实例
1、创建/切换数据库use db1
2、查看数据库show dbs
3、删除当前数据库db.dropDatabase()
4、创建集合db.createCollection("c1")
5、创建集合并添加数据db.dept.insert({deptno:1,deptname:"技术部",location:"beijing"})
6、查看集合show collections
7、删除集合db.collection_name.drop()
8、查看所有文档数据db.dept.find()
9、查看单独的一个文档db.dept.findOne()
10、删除指定文档db.dept.remove({deptno:1})
11、更新文档db.dept.update({deptno:2},{$set:{location:"shenzhen"}})"}})