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 数据库,支持强大的查询语言和水平扩展。