【博客地址】: https://blog.csdn.net/sunyaowu315
【博客大纲地址】: https://blog.csdn.net/sunyaowu315/article/details/82905347
一 Mongodb介绍及用途
MongoDB 属于文档型非关系型数据库,开源、高性能、高可用、可扩展。
MongoDB 介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
特点:
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
- 面向集合存储,易存储对象类型的数据
- 模式自由
- 支持动态查询
- 支持完全索引,包含内部对象
- 支持查询
- 支持复制和故障恢复
- 使用高效的二进制数据存储,包括大型对象(如视频等)
- 自动处理碎片,以支持云计算层次的扩展性
- 支持RUBY,PYTHON,JAVA,C ,PHP,C#等多种语言
- 文件存储格式为BSON(一种JSON的扩展)
- 可通过网络访问
二 安装说明
下载链接: https://pan.baidu.com/s/1J5wy0XewZaBB6DRrzCXG0g 提取码: fm8b ,点击安装64位的
参考操作方法http://www.ddooo.com/softdown/130308.htm#dltab
三 如何高效使用mongoDB
MongoDB中的三个概念:
数据库(database): 一个仓库,在其中可以存放集合。
集合(collection): 概念相当于MySQL中的表,类似于一个数组,在集合中可以存放文档。
文档(document): 文档是数据库中的最小单位,我们存储和操作的内容都是文档。
注意:在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合。
1、库操作
基本指令
show dbs/databases: // 查看所有数据库
use (database): // 进入到指定的数据库中
db // 显示当前窗口所处的数据库
db.stats() // 查看当前数据库状态
db.dropDatabase() // 删除当前数据库,默认为 test,故要切换到某个数据库下进行删除
use myNewDB // 创建数据库
db.myNewCollection1.insertOne({ x: 1 }) //第一次对该数据库存储数据时,自动创建
db.myNewCollection3.createIndex( { y: 1 } )
db.createCollection('数据库名',options)// 显性创建collection
show collections // 查看所有collection
db.gather_A.drop() //删除collection
2、集合操作-CRUD(增删改查)
Field 的顺序和限制
1、_id总是document中的第一个字段
2、更新其他字段内容也会导致字段的顺序变化
3、_id这个名称是保留给主键的,这个值在一个collection中必须唯一且不变,可以是除开array以外的任意类型
4、字段名不能以$开头
5、字段名不能包含.
6、字段名不能包含空字符
基本指令
db.createCollection("gather_A")
db.createCollection("collectionName",{capped:true,size:10000,max:100});//size指定集合大小,单位为KB,max指定文档数量
db.gather_A.count();//统计集合gather_A中的数据数量
#注:mongo中支持js,可通过js操作实现批零处理,如:for(var i=0;i<1000;i++)
{db.gather_A.insert({name:"xiaomu"+i,age:20+i});}
插入: db.<collection>.insert(doc)
db.gather_A.insert({name:'Tom', age