MongoDB:学习记录操作步骤

1. MongoDB基础知识

MongoDB是一个开源的文档型数据库,它将数据存储为文档,这些文档是一个类似于JSON的BSON格式,以键值对的形式组织数据。MongoDB支持动态查询,索引,排序,可读性和高效率的数据聚合操作。

MongoDB的灵活性和速度适合需要强大的查询和聚合的应用程序。

1.1 文档类型

在MongoDB中,文档指的是一组键值对或者是一个Bson文档对象。它们非常类似于JSON文档,但是支持函数和二进制数据等更复杂的类型。

文档的BSON格式:

{

"item": "apple",

"qty": 5,

"status": "A",

"size": {

"h": 10,

"w": 10,

"uom": "cm"

},

"tags": [ "red", "green" ],

"dim_cm": [ 5, 7 ]

}

以上是一个MongoDB文档的BSON格式,这个文档描述了一个水果的名称,数量,状态以及其他的附加属性。它包含了一个大小子文档,一个标签数组以及一个尺寸的数组。

1.2 集合

在MongoDB中,文档存储在集合中,集合是一组有序的文档,是MongoDB中的一个核心概念。可以将集合视为表格的一个实例,每个文档是一行数据。

创建集合语法格式:

db.createCollection(name, options)

例如,以下代码将创建一个名为"mycol"的集合:

use testDB

db.createCollection("mycol")

这将在testDB数据库中创建一个名为"mycol"的新集合。

2. MongoDB的安装

在安装MongoDB之前,需要确保系统中已经安装了所需的软件和库。例如,MongoDB需要使用curl、openssl、openssl-devel、libsasl2、libsasl2-devel和libpcap等库文件。

2.1 安装依赖项

首先需要安装下面的依赖项库文件,以确保MongoDB能够正常工作。

Curl

yum install curl

Openssl

yum install openssl

yum install openssl-devel

Libsasl2

yum install libsasl2

yum install libsasl2-devel

Python 3.x

yum install python3

yum install python3-devel

2.2 安装MongoDB

可以通过以下两种方式安装MongoDB。

方式1:使用yum命令进行安装

添加MongoDB的软件仓库:

vim /etc/yum.repos.d/mongodb.repo

在文件中添加下面的内容:

[mongodb]

name=MongoDB Repository

baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/

gpgcheck=0

enabled=1

安装MongoDB:

yum install mongodb-org

方式2:下载软件包进行安装

下载适用于您系统的MongoDB安装包,并解压缩。

tar -zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt/mongodb

3. MongoDB的启动和停止

3.1 启动MongoDB

启动MongoDB分为两个步骤:启动服务设施和启动MongoDB实例进程。

第一步:启动服务设施

服务设施用于管理MongoDB服务进程。使用以下命令启动:

mongod

第二步:启动MongoDB实例

启动MongoDB实例时,需要指定数据库路径,以及日志文件的路径和日志级别等其他参数。以下是一个示例启动命令:

mongod --dbpath /data/db/ --logpath /var/log/mongodb.log --logappend --bind_ip 0.0.0.0 --port 27017 --fork

这将启动一个新的MongoDB实例,同时将输出重定向到日志文件中。

3.2 关闭MongoDB

关闭MongoDB的方法和启动非常类似。它分为两个步骤:首先停止MongoDB实例,然后停止MongoDB服务设施。

第一步:停止MongoDB实例

可以使用以下命令来停止MongoDB实例:

mongo admin --eval "db.shutdownServer()"

第二步:停止服务设施

停止MongoDB服务设施:

killall mongod

这将停止所有运行的MongoDB实例进程。

4. MongoDB基本操作

4.1 数据库操作

在MongoDB中,可以使用以下命令进行数据库的基本操作。

列出所有数据库

列出所有可用的数据库:

show dbs

创建数据库

创建一个新的数据库,可以使用以下命令:

use mylovetest

删除数据库

删除一个数据库,可以使用以下命令:

db.dropDatabase()

4.2 集合操作

下面列出了MongoDB中集合的主要操作命令。

创建集合

在MongoDB中,可以使用以下命令来创建集合:

db.createCollection("mycoll");

插入文档

可以使用以下命令将一个文档插入到集合中:

db.mycoll.insert({name:"jsz",zone:"aws",skill:"linux",hobby:["reading","running"]});

查询文档

可以使用以下命令来查询文档:

db.mycoll.find();

更新文档

可以使用以下命令来更新文档:

db.mycoll.update({"name":"jsz"},{"$set":{"zone":"alibaba"}});

删除文档

可以使用以下命令来删除文档:

db.mycoll.remove({"name":"jsz"});

4.3 操作符

在MongoDB中,可以使用以下操作符进行数据的操作。

查询操作符

以下是常用的查询操作符:

等于:$eq

大于:$gt

小于:$lt

大于等于:$gte

小于等于:$lte

不等于:$ne

查询指定的值:$in

查询不包含指定的值:$nin

示例:使用操作符查询文档

db.mycoll.find({age:{$gt:30}});

以上命令将找到年龄大于30的文档。

5. MongoDB的优化

5.1 索引优化

索引是MongoDB中数据查询的一种重要方式,下面介绍MongoDB索引的使用:

创建索引

可以使用以下命令来创建索引:

db.mycoll.createIndex({"name":1});

以上命令将会在名为"mycoll"的集合中创建一个名为"name"的升序索引。

删除索引

可以使用以下命令删除索引:

db.mycoll.dropIndex({"name":1});

这个命令将删除mycoll集合中的名为"name"的索引。

5.2 复制集和分片集群

MongoDB支持高可用性和横向扩展,它采用复制集和分片集群的方式实现。

复制集

复制集是一组MongoDB实例的集合,其中每个实例都维护数据库的副本。其中,一个实例作为主节点,可以接受读写操作。其余的实例作为从节点,它们维护的MongoDB数据与主节点的数据完全相同,并且可以用于读操作。如果主节点出现故障,从节点中的某一个节点将会自动的成为主节点。

分片集群

分片集群由多个MongoDB实例组成,其中每个实例称为一个分片。数据会被分成多个分片,并在分片之间进行划分和分布。当数据集的大小增加到单个分片无法满足性能要求时,可以使用分片集群来实现水平扩展。

6. 总结

本文介绍了MongoDB的基础知识,包括文档类型、集合操作、索引优化等。同时还介绍了MongoDB的安装、启动和关闭方法,以及优化技术。了解MongoDB的基础知识可以帮助开发人员基于MongoDB快速开发应用程序,并最大程度地利用MongoDB的特性和优势。

数据库标签