MongoDB数据库基础操作

后边的话

  为了保存网站的用户数据和事务数据,寻常须要一个数据库。MongoDB和Node.js更加般配,因为Mongodb是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的下令和JavaScript语法很像。本文将详细介绍MongoDB数据库

 

数据库

  数据库,顾名思义,是数码存储的仓库,主要效率有三个

  1、有集体地存放数据

  与在磁盘上团结存放文件不一样,数据库替用户社团了数据的存储方式,用户只必要遵从数据库提供的接口将数据写入,数据便会鲁人持竿专业的格式被贮存起来

  2、依照不一样的急需开展询问

  数据库不仅要能写入数据,还扶助数据查询,并且可以依照区其他必要举办查询。因为存储是有协会的,由此查询上可以更规范化,查询速度也会快很多

  不一致的数据库的分别就是存放数据的集体不一致,同时提供了差异类型的查询。用户可以根据自己的必要,选拔适合的数据库

【分类】

  数据库的归类有广大种,根据对SQL语言的协助,可以分成以下三种:

  1、SQL数据库,比如Oracle、Mysql等

  2、NoSQL数据库,比如Redis、MongoDB等

  随着在规模互连网使用的出现,传统的SQL数据库碰到了有的统筹上的弊端。比如,SQL对表的概念使利用不够利索,横向伸张比较困难。与部分特征难以满意相比,反而是SQL数据库的过多特性没有用武之地。比如,在众多处境下,及时存取并不是不可或缺的,也从不越发多的事务须求,而这几个额外的特色消耗着SQL数据库的性质

  由此NoSQL数据库应运而生,NoSQL全称是Not Only
SQL,意即”不仅仅是SQL”。但事实上,绝超过半数NoSQL数据库都丢弃了对SQL语言的援救。与SQL关系型数据库比较,NoSQL非关系型数据库大多舍弃了有些表征。比如,甩掉了实时一致性、对业务的完好援助以及多表查询等。听起来缺点很多,但收入也精通,NoSQL数据库简单方便、方便扩张,并且有更好的性质

 

概述

  MongoDB是一个开源的NoSQL数据库,在境内被叫做芒果数据库。Linux、Apache、MySQL和PHP组成了足够盛名的LAMP架构。现在,有人指出将LAMP中的代表M的MySQL替换为MongoDB

  NoSQL数据库有很多,为何要挑选MongoDB呢?

  MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写,目的在于为
WEB
应用提供可扩充的高质量数据存储解决方案。MongoDB使用集合(collection)和文档(document)来讲述和仓储数据,集合(collection)就相当于表,文档(document)相当于行,字段相当于列,不像MySQL之类的关系型数据库,表结构是定点的,比如某一行由若干列组成,行行都同样,而MongoDB分裂,一个集合里的八个文档可以有区其他结构,更灵敏一些

  MongoDB有投机很显然的特性,统计起来有以下4条

  1、没有表结构的限制

  传统SQL数据库中,对每张表都急需定义表结构。如若有新的仓储必要,往往要求添加新的字段,更改表结构。在一部分现象下,会显示很不便利,而对此MongoDB,那不再是问题。因为它从不表结构那么些定义,在利用一张表以前,不须要对那张表展开别的起首化操作。MongoDB的那种特性对快速支付和形成的事情需如果很恰当的

  2、完全的目录协助

  有些NoSQL数据库,比如redis,它是内存数据库,速度很快。可是,做为键值数据库,只协助一种按键查询的方法。灵活性、使用限制和易用性都受到震慑;再比如hbase,写入速度很快。然则,同样查询受限,它只援救单索引,二级索引需求自己完成

  而MongoDB扶助单键索引、多键索引、全文索引和地理地方索引。所以MongoDB是意义万分全面的NoSQL数据库,也被喻为最相仿关周详据库的非关周全据库

  3、杰出的数据安全性和造福的框框伸张

  MongoDB使用复制集做多副本存储,以保险数据的安全性。同时,MongoDB内置的分片技术可以很便宜地举行多少规模的壮大。分片技术是很流行的一个特征,它含有了电动数据接口,动态扩容和缩容等一层层在其他数据库中要求大批量人造操作的行事,同时提供了对数据库的会晤访问入口,不须要在应用层再展开分发,明显滑坡了人工花费

  4、完善的文档协理和驱动协理

 

安装

  首先,在官网的下载页面选拔适用的MongoDB版本进行下载

必发bifa88手机客服端 1

  然后,一步一步举行设置即可

必发bifa88手机客服端 2

必发bifa88手机客服端 3

  默许意况下,安装到C盘的Program Files文件夹下的MongoDB文件夹中

必发bifa88手机客服端 4

必发bifa88手机客服端 5

 

服务器配置

【搭建服务器】

  搭建服务器,要求进行以下多少个步骤

  1、创造data文件夹存储数据库的数据文件;创设log文件夹存储数据库的日记文件;创制bin文件夹存储数据库的可执行文件;创制conf文件夹来储存数据库的计划文件

  2、在windows系统下须求安装环境变量,否则在命令行中会提醒mongod命令不可用

  在环境变量的path中,添加mongod.exe文件的目录

必发bifa88手机客服端 6

  3、接下去,有三种艺术启动mongoDB服务,一种如下所示,设置dppath参数值为自定义的目录路径

mongod --dbpath=D:/app/mongo/data

  由下图来看,mongodb的默许端口是27017

必发bifa88手机客服端 7

  4、另一种是在conf文件夹下新建mongod.conf文件,在这些文件将官设置mongodb启动的布局参数

dbpath = data
logpath = log/mongod.log

mongod -f conf/mongod.conf

  那种艺术在命令行工具中平素不别的提醒,因为记录已经保存到日志文件中,此时mongodb服务已经正常打开

必发bifa88手机客服端 8

【连接服务器】

  在搭建好mongodb服务器之后,须求采用客户端mongo举行连接,才能展开下一步的操作

  因为是选用mongo连接mongodb服务器,所以需求确保启动mongodb服务器的命令行工具不被关门,新开一个命令行工具,并输入mongo
127.0.0.1/test,test为数据库的名目

必发bifa88手机客服端 9

【关闭mongod服务】

  首先切换来admin数据库(use
admin),然后利用db.shutdownServer()命令来关闭服务

必发bifa88手机客服端 10

 

数据库操作

【默认】

  MongoDB 中默许的数据库为 test,即便没有创立新的数据库,集合将存放在
test 数据库中

【查看】

  使用show dbs来查阅数据库

show dbs

必发bifa88手机客服端 11

【创建/切换】

   使用use命令来切换/创制数据库,会发觉创制的数据库并不在数据库的列表中,
要突显它,要求向数据库插入一些数据

use db_name

必发bifa88手机客服端 12

【呈现当前数据库】

  使用db命令来突显当前数据库

db

必发bifa88手机客服端 13

【将数据写入集合中】

  使用db.集合名.insert(文档)来将文档的数额写入集合中,文档的格式为JSON。而持有存储在聚集中的数据都是BSON格式。BSON是一种类json的一种二进制格局的蕴藏格式,简称Binary
JSON。

db.collection_name.insert()

必发bifa88手机客服端 14

【查看集合】

  上边的插入操作,会自动成立集合db1_coll1,使用show
collections命令可以查阅当前数据库中的所有集合

必发bifa88手机客服端 15

【删除数据库】

  那将去除当前所选数据库。
如若没有采纳任何数据库,那么它将去除默许的’test‘数据库

db.dropDatabase()

必发bifa88手机客服端 16

 

聚集操作

  集合类似于SQL数据库中的数据表,标识为collection

【查看集合】

   可以应用命令show collections检查创立的联谊

必发bifa88手机客服端,  [注意]也得以行使show tables来查看集合

必发bifa88手机客服端 17

【创设集合】

  在插入文档时,MongoDB首先检查上限集合capped字段的深浅,然后检查max字段

db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean>, size: <number>, max <number>} )

  name:集合的名字

  capped:是或不是启用集合限制,如果翻开需求制定一个限制标准,默认为不启用,那个参数没有实际意义

  max:集合中最大条数限制,默认为没有界定

  size:限制集合使用空间的轻重缓急,默许为没有范围,size的先行级比max要高

  autoIndexId:是或不是使用_id作为目录,默许为使用(true或false)

必发bifa88手机客服端 18

  [注意]向聚集中插入文档时,假设集合不设有 ,则会自行创立集合

必发bifa88手机客服端 19

【删除集合】

  MongoDB
的 db.collection_name.drop() 用于从数据库中除去集合。倘诺选定的汇集成功删除,drop()情势将回到true,否则重临false

必发bifa88手机客服端 20

 

多少导入

  在mongoimport的装置目录下,可以使用如下命令导入数据文件

  使用window自带的CMD,使用反斜杠

mongoimport -h 192.168.1.106:27017 -d db1 -c users --file D:\app\vue\imooc\resource\dumall-users

  使用bash工具时,使用正斜杠

必发bifa88手机客服端 21

  mongoimport的详实命令如下

必发bifa88手机客服端 22

 

闭馆服务

  要是想关闭mongodb服务,可以应用mongo来落成

mongo 192.168.1.105:27017
use admin
db.shutdownServer()

   也可以一贯运用mongod来贯彻

mongod --shutdown

 

相关文章