MongoDB的简单使用方法

1. MongoDB的基本概念和结构

MongoDB是一种基于文档的数据库管理系统,采用BSON格式(二进制JSON)来存储数据,与传统的关系型数据库不同,MongoDB 不需要定义表结构,存储数据时可以自由组合各种数据类型。

MongoDB中常用的基本概念有:

1) 数据库(Database):MongoDB的一个实例可以包含多个数据库,每个数据库都有独立的权限和文件。

2) 集合(Collection):集合类似于关系型数据库中的表,是一组没有固定格式的文档。

3) 文档(Document):MongoDB中的数据以 BSON(Binary JSON)文档的形式存储。BSON是一种二进制序列化格式,可轻松表示编码为JSON格式的更多数据类型。

4) 字段(Field):集合中的每个文档包含一个或多个字段,是一种键值对的形式,其中键表示字段的名称,值表示字段的值。

2. 安装MongoDB

安装MongoDB的方式有很多种,这里介绍在Ubuntu系统上的安装方式。

2.1. 添加MongoDB官方仓库

在终端中输入以下命令:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4

接着,输入以下命令来添加MongoDB到官方仓库:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

执行update命令更新apt源,输入以下命令:

sudo apt-get update

2.2. 安装MongoDB

在更新完apt源之后,我们就可以安装mongodb了。执行以下命令:

sudo apt-get install -y mongodb-org

安装完成后,MongoDB就已经启动了。

在终端输入以下命令进行启动服务:

sudo systemctl start mongod

如果需要设置开机自启动,可以输入以下命令:

sudo systemctl enable mongod

3. MongoDB的常用命令

3.1. 连接MongoDB

连接MongoDB的方式有两种:使用mongo命令连接、使用驱动程序连接。 mongo可以通过命令行连接MongoDB数据库。使用mongo命令连接时,可以在mongo shell中执行MongoDB命令。mongo shell是一个JavaScript的控制台,用于交互式操作MongoDB数据库。

mongo

3.2. 创建数据库和集合

MongoDB中使用use命令来创建数据库。如果该数据库不存在,则会自动创建。

use mydb

此时,mydb数据库就创建成功了。使用show dbs命令可以查看已创建数据库。

show dbs

现在,我们可以在mydb数据库中创建集合了。使用db.createCollection()来创建集合。以下示例将在mydb数据库中创建名为mycollection的集合:

db.createCollection("mycollection")

3.3. 插入文档

使用insert()方法插入文档,insert一次只能插入一个文档(一行数据)。

db.student.insert({"name": "Jack", "age": 18})

在这个示例中,我们向student集合中插入了一条数据(一个文档)。插入后,在mongo shell中使用db.student.find()命令可以检索出该文档。

db.student.find()

3.4. 更新文档

使用update()方法进行文档的更新。

以下示例将更新student集合中name字段为Jack的文档的age字段为20:

db.student.update({"name": "Jack"}, {"$set": {"age": 20}})

在这个示例中,使用update()方法来更新student集合中符合查询条件的文档。"$set"操作符用来指定要更新的字段。

3.5. 删除文档

使用remove()方法来删除文档。

以下示例将删除student集合中名为Jack的文档:

db.student.remove({"name": "Jack"})

在这个示例中,使用remove()方法来删除student集合中符合查询条件的文档。

4. MongoDB的批量操作

4.1. 批量插入

使用insertMany()方法插入多个文档,以数组的形式传递多个文档。

以下示例将student集合中插入多个文档:

db.student.insertMany([{"name": "Tom", "age": 20}, {"name": "Lucy", "age": 18}, {"name": "John", "age": 19}])

4.2. 批量更新

使用updateMany()方法批量更新符合条件的文档。

以下示例将student集合中所有年龄大于18岁的文档的age字段更新为22:

db.student.updateMany({"age": {"$gt": 18}}, {"$set": {"age": 22}})

在这个示例中,使用updateMany()方法来更新student集合中所有符合查询条件的文档。"$gt"操作符表示大于。

4.3. 批量删除

使用deleteMany()方法删除符合条件的多个文档。

以下示例将student集合中所有名为Tom的文档删除:

db.student.deleteMany({"name": "Tom"})

在这个示例中,使用deleteMany()方法来删除student集合中所有符合查询条件的文档。

5. 使用MongoDB的驱动程序

5.1. 连接MongoDB

MongoDB驱动程序可以连接MongoDB数据库。在Python中使用pymongo模块来连接MongoDB。

在Python中,以下示例展示了如何连接MongoDB数据库:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

db = client["mydatabase"]

print(db)

在这个示例中,使用MongoClient来连接MongoDB数据库。在创建MongoClient时,需要指定MongoDB服务器的地址和端口号。创建MongoClient对象之后,就可以通过该对象访问MongoDB数据库。使用client["mydatabase"]创建mydatabase数据库的引用。可以通过print(db)来输出引用。

5.2. 插入数据

使用insert_one()方法或insert_many()方法来插入一个或多个文档。

以下示例将向student集合中插入一条记录:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

db = client["mydatabase"]

coll_student = db["student"]

record = {"name": "Tom", "age": 20}

x = coll_student.insert_one(record)

print(x.inserted_id)

在这个示例中,使用insert_one()方法来向student集合中插入一条数据。

5.3. 查询数据

使用find()方法查询一个或多个文档。

以下示例将查询student集合中所有文档,并将查询结果打印输出:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

db = client["mydatabase"]

coll_student = db["student"]

for x in coll_student.find():

print(x)

在这个示例中,使用find()方法查询student集合中所有文档。使用for循环打印查询结果。

5.4. 更新数据

使用update_one()方法或update_many()方法来更新一个或多个文档。

以下示例将更新name为Tom的文档的age字段为22:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

db = client["mydatabase"]

coll_student = db["student"]

condition = {"name": "Tom"}

new_value = {"$set": {"age": 22}}

coll_student.update_one(condition, new_value)

在这个示例中,使用update_one()方法来更新student集合中符合查询条件的文档。

5.5. 删除数据

使用delete_one()方法或delete_many()方法来删除一个或多个文档。

以下示例将删除student集合中名为John的文档:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")

db = client["mydatabase"]

coll_student = db["student"]

condition = {"name": "John"}

coll_student.delete_one(condition)

在这个示例中,使用delete_one()方法来删除student集合中符合查询条件的文档。

6. 总结

本文介绍了MongoDB的基本概念和结构、如何在Ubuntu系统上安装MongoDB。并介绍了MongoDB的常用命令,包括连接MongoDB、创建数据库和集合、插入、更新和删除文档。此外,本文还介绍了如何使用MongoDB的驱动程序,通过Python的pymongo库来操作MongoDB数据库。

数据库标签