首页
论坛
社团
我的

ADSKN论坛

 找回密码
立即注册

扫一扫,微信登陆

开启左侧

老生常谈MongoDB数据库底子 操作

[复制链接]
 楼主| 草木人语 发表于2022-7-19 01:09:29 | 显示全部楼层 |阅读模式 | 来自 上海市 腾讯云

马上注册加入论坛,获取更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

为了生存网站的用户数据和业务数据,通常需要一个数据库。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版本举行 下载

021158x33dmm3iszcl8pk2.png

然后,一步一步举行 安装即可

021158kqvl81u1zwql1su1.png
021159pz125116zvdu3u2g.png

默认环境 下,安装到C盘的Program Files文件夹下的MongoDB文件夹中

021200pocmewm2ppsce5gy.png
021200l5fh08wl0iru560f.png

服务器设置

【搭建服务器】

搭建服务器,需要举行 以下几个步调

1、创建data文件夹存储数据库的数据文件;创建log文件夹存储数据库的日志文件;创建bin文件夹存储数据库的可执行文件;创建conf文件夹来存储数据库的设置 文件

2、在windows体系 下需要设置环境变量,否则在下令 行中会提示mongod下令 不可用

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

021200cvrydb11dsjop8ss.png

3、接下来,有两种方式启动mongoDB服务,一种如下所示,设置dppath参数值为自界说 的目录路径

  1. mongod --dbpath=D:/app/mongo/data
复制代码

由下图看出,mongodb的默认端口是27017

021201kngno6nnov2en5r8.png

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

  1. dbpath =<span> datalogpath </span>= log/mongod.log
复制代码
  1. mongod -f conf/mongod.conf
复制代码

这种方法在下令 行工具中没有任何提示,因为记录已经生存到日志文件中,此时mongodb服务已经正常开启

021201wjjzzxvs67mosre9.png

【毗连 服务器】

在搭建好mongodb服务器之后,需要使用 客户端mongo举行 毗连 ,才气 举行 下一步的操作

因为是使用 mongo毗连 mongodb服务器,所以需要包管启动mongodb服务器的下令 行工具不被关闭,新开一个下令 行工具,并输入mongo 127.0.0.1/test,test为数据库的名称

021202jo5wwnno4ovbom84.png

【关闭mongod服务】

起首 切换到admin数据库(use admin),然后使用 db.shutdownServer()下令 来关闭服务

021202p2ag88407mkkg8tg.png

数据库操作

【默认】

MongoDB 中默认的数据库为 test,假如 没有创建新的数据库,集合将存放在 test 数据库中

【查看】

使用 show dbs来查看数据库

  1. show dbs
复制代码
021203qoh6xsj2o546ozec.png

【创建/切换】

使用 use下令 来切换/创建数据库,会发现创建的数据库并不在数据库的列表中, 要表现 它,需要向数据库插入一些数据

  1. use db_name
复制代码
021203hlqtxjqz5tvwqdtx.png

【表现 当前数据库】

使用 db下令 来表现 当前数据库

  1. db
复制代码
021204lk0duek8eh6lww98.png

【将数据写入集合中】

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

  1. db.collection_name.insert()
复制代码
021204pj8asaqzlj833s1s.png

【查看集合】

上面的插入操作,会自动 创建集合db1_coll1,使用 show collections下令 可以查看当前数据库中的所有集合

021205wxtp2qzlplmzx22t.png

【删除数据库】

这将删除当前所选数据库。 假如 没有选择任何数据库,那么它将删除默认的'

  1. <font size="4" face="NSimsun">test</font>
复制代码
‘数据库

  1. db.dropDatabase()
复制代码
021205p7pl0jw3rrx7p077.png

集合操作

集合雷同 于SQL数据库中的数据表,标识为collection

【查看集合】

可以使用 下令

  1. <font size="4" face="NSimsun">show collections</font>
复制代码
查抄 创建的集合

[留意 ]也可以使用 show tables来查看集合

021206siu7e61ey7667ko0.png

【创建集合】

在插入文档时,MongoDB起首 查抄 上限集合

  1. <font face="NSimsun">capped</font>
复制代码
字段的大小,然后查抄
  1. <font face="NSimsun">max</font>
复制代码
字段

  1. db.createCollection(name, {capped: &lt;Boolean&gt;, autoIndexId: &lt;Boolean&gt;, size: &lt;number&gt;, max &lt;number&gt;} )
复制代码

name:集合的名字

capped:是否启用集合限定 ,假如 开启需要订定 一个限定 条件,默认为不启用,这个参数没有实际 意义

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

size:限定 集合使用 空间的大小,默认为没有限定 ,size的优先级比max要高

autoIndexId:是否使用 _id作为索引,默认为使用 (true或false)

021206iysysnts3pd1n2gs.png

[留意 ]向集合中插入文档时,假如 集合不存在 ,则会自动 创建集合

021206cs0eydd8sixsme0e.png

【删除集合】

MongoDB 的

  1. <font face="NSimsun">db.collection_name.drop()</font>
复制代码
用于从数据库中删除集合。假如 选定的集合乐成 删除,
  1. <font face="NSimsun">drop()</font>
复制代码
方法将返回
  1. <font face="NSimsun">true</font>
复制代码
,否则返回
  1. <font face="NSimsun">false</font>
复制代码

021207fxv2cm44280yz4i4.png

以上这篇老生常谈MongoDB数据库底子 操作就是小编分享给各人 的全部内容了,盼望 能给各人 一个参考,也盼望 各人 多多支持脚本之家。


来源:https://www.jb51.net/article/118912.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
公告
  • 问题反馈请扫码加入一期核心用户群
  • [学生认证] 认证后获取生活类板块发帖权限
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

QQ|Archiver|手机版|小黑屋|ADSKN短链接收益平台 ( 冀ICP备2021002162号 )

GMT+8, 2022-12-4 21:01 , Processed in 0.347822 second(s), 15 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表