MongoDB
来源:互联网 发布:ubuntu当个人日常使用 编辑:程序博客网 时间:2024/06/14 00:02
- MongoDB简介
- MongoDB基础知识
- 文档
- 集合
- 命名规范
- 数据库
- 数据库名称命名规则
- MongoDB数据类型
- 基本数据类型
- 配置MongoDB
- windows下安装及配置MongoDB
- 使用shell脚本
- shell的基本操作
- 使用shell执行脚本
- mongorcjs文件
MongoDB简介
- MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
- 在高负载的情况下,添加更多的节点,可以保证服务器性能。
- MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
MongoDB基础知识
文档
文档是MongoDB的核心概念,文档就是键值对的一个有序集。
例如:
{“greeting”:”Hello World!”}
其中greeting是键,Hello World!为值
MongoDB区分大小写
MongoDB不但区分类型,而且区分大小写。
例如:
{“foo”:3},{“foo”,”3”}
以上两个文档是不同的。MongoDB文档不能有重复键。
- MongoDB文档中键/值是有序的
集合
集合就是一组文档。如果将MongoDB中的一个文档比喻为关系型数据库中的一行,那么一个集合就相当于一张表。
集合是动态模式的
集合是动态模式的。这意味着一个集合里的文档可以是各式各样的。
例如,下面两个文档可以存储在同一个集合里面:
{“greeting”:”Hello World!”}
{“foo”:5}子集合
组织集合的一种惯例是使用”.”分隔不同命名空间的子集合。
命名规范
- 集合名不能是空字符串(“”)。
- 集合名不能包含\0字符(空字符),这个字符表示集合名的结束。
- 集合名不能以”system.”开头,这是为系统集合保留的前缀。
- 用户创建的集合不能在集合名中包含保留字符串”$”。
数据库
- 1.在MongoDB中,多个文档组成集合,而多个集合可以组成数据库。一个MongoDB实例可以承载多个数据库,每个数据库拥有0个或者多个集合。每个数据库都有独立的权限,即便是在磁盘上,不同的数据库也放置在不同的文件中。
- 2.如果想看链接指向的哪个数据库,在shell中输入db即可,如果要切换数据库的话,用use databaseName即可,如果没有该数据库则会创建。
数据库名称命名规则
- 不能是空字符串(“”)。
- 不能含有/、\、.、”、*、<、>、:、|、?、$、(一个空格)、\0(空字符)。基本上只能使用ASCII中的字母和数字
- 数据库名区分大小写,数据库名应全部小写
- 数据库名最多为64字节
- admin、local、config为系统数据库
MongoDB数据类型
基本数据类型
mongo支持的数据类型有:
- null,null用于表示空值或者不存在的字段,例:{“x”:null}
- 布尔型,布尔型有两个值true和false,例:{“x”:true}
- 数值,shell默认使用64位浮点数值,例:{“x”:3.14}或{“x”:3}
- 对于整数值,可以使用NumberInt类(表示4字节带符号整数)或NumberLong类(表示8字符符号整数),例:{“x”:NumberInt(“3”)},{“x”:NumberLong(“3”)}
- 字符串,UTF-8字符串都可以表示为字符串类型的数据,例:{“x”:”foobar”}
- 日期,日期被存储为自新纪元以来经过的毫秒值,例:{“x”:new Date()},创建日期对象时,应使用new Date(),而非Date()。如果构造函数作为函数进行调用,返回的是日期的字符串表示,而非日期对象。
- 正则表达式,查询时,使用正则表达式作为限定条件,例:{“x”:/foobar/1}
- 数组,数据列表或数据集可以表示为数组,例:{“x”:[“a”,”b”,”c”]}
- 内嵌文档,文档可以嵌套其他文档,例:{“x”:{“foo”:”bar”}}
- 对象id,对象id是一个12字节的ID,是文档的唯一标识,例:{“x”:ObjectId()}
- 二进制数据,二进制数据是一个任意字节得字符串
- 代码,查询和文档中可以包括任意JavaScript代码,例:{“x”:function(){/*…*/}}
配置MongoDB
windows下安装及配置MongoDB
- 1.下载MongoDB
MongoDB下载地址 2.配置MongoDB
1.下载后解压之后如下图:
2.创建配置文件mongo.config,并将创建好的文件放到MongoDB解压后的目录中,内容如下:- dbpath=D:\Program Files\MongoDB\Server\3.2\data #数据库路径
- logpath=D:\Program Files\MongoDB\Server\3.2\logs\mongo.log #日志输出文件路径
- logappend=true #错误日志采用追加模式
- journal=true #启用日志文件,默认启用
- quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
- port=27017 #端口号 默认为27017
3.配置环境变量(如果需要)
- 3.安装MongoDB服务
mongod –config “D:\Program Files\MongoDB\Server\3.2\mongo.conf” –install –serviceName “MongoDB” #安装windows本地服务,其中-config 为”双-”
mongod –config “D:\Program Files\MongoDB\Server\3.2\mongo.conf” –remove –serviceName “MongoDB” #删除windows本地服务,其中-config 为”双-”
安装完成后在cmd中输入services.msc然后找到Mongo DB服务并启动
使用shell脚本
shell 是一个功能完备的Javascript解释器,可以运行任意Javascript程序。
打开cmd输入mongo,shell将自动链接到MongoDB服务器,必须保证mongod 已启动 (用浏览器访问http://127.0.0.1:27017/ 来验证mongodb服务是否启动)
shell的基本操作
1.创建
insert函数可将一个文档添加到集合。
例如:
post = {“title”:”My Blog Post”,”content”:”Here’s my blog post”,”date”:new Date()}
db.blog.insert(post);2.查询
db.blog.find() #查询所有文档
db.blog.findOne() #查询一个文档3.更新
post.comment = []
db.blog.update({title:”My Blog Post”},post)
使用shell执行脚本
命令:mongo js文件地址 例:mongo script.js
在mongo shell运行中可以使用load函数来加载js文件,例:load(“script.js”),load函数无法解析”~”符号
.mongorc.js文件
这个文件将在shell启动时自动运行。在这个文件中可以做我们需要得事情。如果不需要加载该文件,用“mongo –norc”(双横杠)命令即可
例如:
var no = function(){ print("Not on my watch."); } //禁止删除数据库 db.dropDatabase.prototype.drop = no; //禁止删除集合 DBCollection.prototype.drop = no; //禁止删除索引 DBCollection.prototype.dropIndex = no;
改变数据库函数时,要确保同时对db变量和DB原型进行改变。
- Mongodb
- MongoDB
- mongodb
- mongodb
- mongodb
- MongoDB
- mongodb
- MongoDB
- MongoDb
- mongodb
- MongoDB
- mongodb
- mongodb
- MongoDB
- MongoDB
- mongoDB
- MongoDB
- MongoDB
- 12、mybatis获取自增主键的值
- zhx's contest(快速幂+快速乘法)
- mysql关于utf8_unicode_ci与utf8mb4_unicode_ci的区别
- maven + spring项目 在eclipse中没问题在idea却报错:could not autowired
- PAT
- MongoDB
- 单例模式
- 三星的片子不支持can
- dataTables-使用详细说明整理
- Android面试题
- 互联网公司校招Java面试题总结及答案——京东
- 编译hyperledger fabric官方源码
- HBase_数据批量导入
- hashMap的三种遍历方式