概述

MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则、数据类型、功能以及安装等。

环境:

OS:Windows

Version:3.4

一、安装

1.下载解压

在官网下载对应操作系统版本的安装包,然后解压;我这里使用Windows环境安装测试。

2.在D盘创建Mongodb\data\db目录

3.初始化数据

最好先将bin目录加入到环境变量,否则要到命令目录下执行。

mongod --dbpath D:\mongodb\data\db

4.启动服务

在D:\mongodb目录下创建mongo.config配置文件,配置文件内容如下,这里只配置了数据和日志路径,其它的参数暂时默认。

dbpath=D:\mongodb\data\db
logpath=D:\mongodb\data\log\mongo.log

将mongodb添加到服务启动项

mongod --config D:\mongodb\mongo.config --install --serviceName "MongoDB"

删除服务启动项命令

mongod  --remove --serviceName "MongoDB"

启动服务

net start MongoDB

测试服务是否启动,在浏览器中输入localhost:27017;如果没有手动指定端口那么默认端口就是27017

二、报错处理

1.api-ms-win-crt-runtime-11-1-0.dll

无法启动此程序,因计算机中都是api-ms-win-crt-runtime-11-1-0.dll

处理方法:下载安装Windows6.1-KB2999226-x64补丁

https://www.microsoft.com/zh-cn/download/details.aspx?id=49093

三、基础概念

1.特点

MongoDB并不具备一些关系型数据库中和普遍的功能,如连接和复杂的多行事务。省略这些功能是出于架构上的考虑(为了得到更好的扩展性),因为在分布式系统中这两个功能难以高效的实现,同时为了追求性能MongoDB会尽可能的将一些处理逻辑交给客户端(通过驱动程序或应用程序代码来实现)。

2.功能

1.索引

MongoDB支持通用的二级索引,允许多种快捷查询,且提供唯一索引、复合索引、地理空间索引以及全文索引等。

2.聚合

MongoDB支持“聚合管道”,用户能通过简单的片段创建复杂的聚合,并通过数据库自动优化。

3.特殊的聚合类型

MongoDB支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话。MongoDB也支持固定大小的集合,用于保存近期数据,如日志。

4.文件存储

MongoDB支持一种非常易用的协议,用于存储大文件和文件元数据。

3.基本概念

  • 文档是MongoDB中数据的基本单元,类似关系型数据库中的行。
  • 一个实例可以拥有多个相互独立的数据库,每个数据库都拥有自己的集合,集合类似关系型数据库中的表。
  • 每个文档都有一个特殊的键“_id”,这个键在文档所属的集合中是唯一的。
  • 每个文档不能有重复的键值。例如{"blog":"news","blog":"book"},在该文档中键值blog重复。
  • 一个集合可以存储混合的文档,即不同类型的文档。但通常不这样做,为了方便查询和管理一般一种类型的数据放一个集合。
  • MongoDB不但区分类型,而且区分大小写。

4.命名、规则

文档

  • 键不能含有\0(空字符)。这个字符用于表示键的结尾。
  • .和$具有特殊意义,只能在特定环境下使用。

集合

  • 集合名不能是空字符串
  • 集合名不能包含\0字符
  • 集合名不能以"system."开头
  • 集合名中不能使用保留字符“$”

数据库

  • 不能是空字符串("")。
  • 命名中不能含有:/、\、.、''、*、<、>、:、|、?、$、\0(空字符)。一般由字母和数字组成。
  • 数据库名区分大小写,建议小写。
  • 数据库名最多64个字节。

5.数据类型

1.null

用于表示空值或不存在的字段

例:{"x":null}

2.布尔型

true和flase两个值,例:

{"x":ture}

3.数值

默认使用64位的浮点型数值,对于整形值,可以使用NumberInt类(4字节带符号整数)或NumberLong类(表示8字符带符号整数)。例:

默认:{"x":3.14}或者{"x":3}

指定整形值:{"x":NumberInt("3")}或者{"x":NumberLong("3")}

4.字符串

{"x":"foobar"}

5.日期

{"x":new Date()}

6.正则表达式

{"x" : /a/b}

7.数组

{"x" : ["a","b","c"]}

8.内嵌文档

文档可以嵌套其它文档,被嵌套的文档作为父文档的值

{"x" :{"a" : "b"}}

9.对象id

对象id是一个12字节的ID,是文档的唯一标识。

10.二进制类型

二进制数据是一个任意字节的字符串

11.代码

总结

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

MongoDB入门系列(一):基础概念和安装的更多相关文章

  1. 快速入门系列--WCF--01基础概念

    转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...

  2. 快速入门系列--TSQL-01基础概念

    作为一名程序员,对于SQL的使用算是基础中的基础,虽然也写了很多年的SQL,但常常还是记不清一些常见的命令,故而通过一篇博文巩固相关的记忆,并把T-SQL本身的一些新特性再进行一次学习. 首先回顾基础 ...

  3. 快速入门系列--WebAPI--01基础

    ASP.NET MVC和WebAPI已经是.NET Web部分的主流,刚开始时两个公用同一个管道,之后为了更加的轻量化(WebAPI是对WCF Restful的轻量化),WebAPI使用了新的管道,因 ...

  4. [转]快速入门系列--WebAPI--01基础

    本文转自:http://www.cnblogs.com/wanliwang01/p/aspnet_webapi_base01.html ASP.NET MVC和WebAPI已经是.NET Web部分的 ...

  5. 快速入门系列--CLR--01基本概念

    在.NET平台用C#这么久,自然会发现其版本很多,相应的概念也会很多,常常都是萌萌哒.而在实际工作中经常会遇到需要配置dll版本号,公钥token等场景,因而对C#.NET.CLR.框架类型等基础概念 ...

  6. .NET技术面试题系列(1) 基础概念

    这是.NET技术面试题系列第一篇,今天主要分享基础概念. 1.简述 private. protected. public.internal 修饰符的访问权限 private : 私有成员, 在类的内部 ...

  7. 一步步Cobol 400 上手自学入门教程01 - 基础概念

    先学习基础概念 1.COBOL字符:包含: User-defined words 用户定义字符 ŸSystem-names ŸReserved words 关键字 2.用户定义字符User-defin ...

  8. 入门系列之在Ubuntu上安装Drone持续集成环境

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小铁匠米兰的v 发表于云+社区专栏 介绍 Drone是一个流行的持续集成和交付平台.它集成了许多流行的版本控制存储库服务,如GitHu ...

  9. Docker基础概念与安装

    Docker是什么? Docker最初是dotCloud公司的创始人Solomon Hyks在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并于2013年3月以 ...

随机推荐

  1. 51 nod 1097 拼成最小的数 思路:字符串排序

    题目: 思路:1.以字符串输入这些整数. 2.对这些字符串排序,排序规则为尽量让能让结果变小的靠前. 代码中有注释,不懂的欢迎在博客中评论问我. 代码: #include <bits\stdc+ ...

  2. web版的tty

      1.wetty Wetty是使用Node.js和websockets开发的一个开源`Web-based SSH` 2.环境配置 2.1.配置epel源 [epel] name=epel baseu ...

  3. python 多进程间交换信息与共享信息

    多线程调用函数,获取其返回值,个人总结了三种方法: 一.Queue(进程队列) 构造方法:multiprocessing.Queue([maxsize]) Queue.Queue类即是一个队列的同步实 ...

  4. 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置

    第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分 ...

  5. 提纲挈领webrtc之NS(noise suppression)模块

    Noise suppression,就是大家说的降噪.这种降噪是把人声和非人声区分开来,把非人声当成噪声. 一段包含人声和噪声的音频经过该模块处理,从理论上讲,只剩下人声了. webrtc的NS在业内 ...

  6. plsql经验之谈

    工具你用熟悉了,可以解决实际生活得问题,且是快速的.比如我们要需要表的字段,和注释的时候,直接右击,详情,可以复制. 我们讲个熟悉的场景或者案例,比如,我们需要把已经建立的源表,需要一定的加工和处理, ...

  7. win10 uwp 隐私声明

    本文讲的是如何去写隐私声明. 垃圾微软要求几乎每个应用都要有隐私声明,当然如果你不拿用户信息的话,那么用户声明是一个URL,我们应该把应用声明放在哪? 其实我们简单方法是把隐私声明Privacy Po ...

  8. Django数据库操作性能相关

    Django数据库操作性能相关 案例: 现在我们的数据库中有两张表如下: 1.职员表: class UserInfo(models.Model): name = models.CharField(ma ...

  9. Struts2运行流程-源码剖析

    本文为原创,如需转载,请标明出处:http://www.cnblogs.com/gudu1/p/7726172.html 首先说一下查看这些框架源码的感受,每一次深入探究 Spring.Struts ...

  10. (转)Java正则表达式的语法与示例

    转自:http://www.cnblogs.com/lzq198754/p/5780340.html 概要: Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 2在字符串 ...