MongoDB 进阶指南:学习管理数据库

1. MongoDB 简介

MongoDB 是一种 NoSQL 数据库,它的数据存储格式是 JSON-Style 的文档,而不是传统的行列式数据库。

MongoDB 支持强大的查询语言,能够通过完整的索引支持非常快速的查询。它还支持水平扩展和复制,以保证高可用性和更高的性能。

下面是 MongoDB 的一些基本术语,以及在 MongoDB 中使用的常见概念:

集合(Collection):类似于表格的概念,一个数据库可以包含多个集合,每个集合用来存储一个特定类型的文档。

文档(Document): MongoDB 中数据存储的基本单元,类似于关系数据库中的行或记录,但比行记录具有更复杂的结构。

字段(Field): MongoDB 文档中存储数据的属性,类似于关系数据库中的列。

索引(Index): MongoDB 中用于加速查询的数据结构。

副本集(Replica Set):由多个 MongoDB 实例组成的集群,用于提高可用性。

2. MongoDB 安装

2.1 下载 MongoDB

您可以从 MongoDB 的官方网站上下载最新的二进制包,官网地址为:https://www.mongodb.com/。

下载适合您操作系统版本的 MongoDB,并将其解压到您选择的文件夹中。

2.2 配置 MongoDB

安装完成后,您需要启动 mongod 服务。在 Windows 中,您可以按照以下步骤来启动服务:

C:\mongodb\bin\mongod.exe --dbpath=C:\mongodb\data

在 macOS 或 Linux 中,您可以按照以下步骤来启动服务:

mongod --dbpath=/usr/local/mongodb/data

--dbpath 选项是 MongoDB 数据库文件的位置。在示例中,我们将数据文件存储在 C:\mongodb\data 或 /usr/local/mongodb/data 目录中。

2.3 连接 MongoDB

安装并配置 MongoDB 后,使用以下命令来连接到 MongoDB 服务器:

mongo

如果您的 MongoDB 服务器有用户名和密码,您可以使用以下命令进行连接:

mongo --host <hostname> --username <username> --password <password> --authenticationDatabase <auth-db>

3. MongoDB 数据库和集合

3.1 创建数据库

MongoDB 中的 database 表示您的实例中的一个逻辑存储区域。MongoDB 支持创建多个独立的数据库。

如下所示,您可以使用以下命令创建一个名为 test 的新数据库:

use test

如果 MongoDB 没有这个数据库,它将自动创建。

3.2 创建集合

集合是存储 MongoDB 文档的地方,类似于 SQL 表。MongoDB 不要求创建集合,因为它们会自动创建。

以下命令将创建一个名为 customer 的集合:

db.createCollection("customer")

您也可以在插入操作中创建集合。以下命令将创建一个名为 mycol 的集合,并插入一个文档:

db.mycol.insertOne( { x: 1 } )

3.3 删除数据库和集合

以下命令将删除 test 数据库:

use test 

db.dropDatabase()

以下命令将删除 customer 集合:

db.customer.drop()

4. 数据操作

4.1 插入数据

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

db.customer.insertOne( {

"_id" : "100",

"firstName" : "John",

"lastName" : "Doe",

"age" : "24",

"email" : "johndoe@example.com"

} )

以下命令将插入多个文档到 customer 集合中:

db.customer.insertMany( [

{

"_id" : "101",

"firstName" : "Jane",

"lastName" : "Doe",

"age" : "22",

"email" : "janedoe@example.com"

},

{

"_id" : "102",

"firstName" : "Mark",

"lastName" : "Smith",

"age" : "28",

"email" : "marksmith@example.com"

}

] )

4.2 查询数据

查询 customer 集合中的所有文档。

db.customer.find()

以下命令将查询 firstName 为 John 的文档:

db.customer.find({firstName: "John"})

4.3 更新数据

以下命令将更新 firstName 为 John 的文档:

db.customer.updateOne({firstName: "John"}, {$set:{ "age":"28"}})

4.4 删除数据

以下命令将从 customer 集合中删除 firstName 为 Jane 的文档:

db.customer.deleteOne({firstName: "Jane"})

5. 索引操作

5.1 创建索引

以下命令将在 customer_id 字段上创建索引:

db.customer.createIndex({customer_id:1})

5.2 删除索引

以下命令将从 customer 集合中删除 customer_id 字段上的索引:

db.customer.dropIndex({customer_id:1})

总结

本文讨论了 MongoDB 的一些基本概念、安装和配置过程以及数据操作的方法。MongoDB 是一种易于使用和理解的 NoSQL 数据库,支持强大的查询语言和水平扩展。

数据库标签