MongoDB数据库基本操作

MongoDB 数据库中提供了很多命令,用来对数据库进行操作,本节将对 MongoDB 数据库的常用命令及其使用进行讲解。

使用JavaScript语言

MongoDB 数据库使用 JavaScript 语言对数据库进行管理,所以在操作 MongoDB 数据库时,可以通过编写 JavaScript 代码来实现。

例如,在 MongoDB 数据库中可以直接进行加、减、乘、除四则运算,如图 16.17 所示。

image 2024 04 17 22 58 12 465
Figure 1. 图16.17 四则运算

也可以直接运行 JavaScript 代码,比如使用 JavaScript 代码计算 100 以内的整数和,如图 16.18 所示。

image 2024 04 17 22 59 25 090
Figure 2. 图16.18 直接运行JavaScript代码

MongoDB 数据库中,可以使用 db 对象管理数据库,如图 16.19 所示,输入 db 后,可以显示当前数据库对象和集合。

image 2024 04 17 23 00 05 585
Figure 3. 图16.19 使用db对象

数据库集合与文档

MongoDB 数据库的特点是:一个数据库由多个集合组成,而一个集合又由多个文档组成,如图 16.20 所示。

image 2024 04 17 23 00 44 052
Figure 4. 图16.20 MongoDB数据库结构图

如果将 MongoDB 数据库与前面学习过的 MySQL 数据库做一个比较,它们的区别如表16.1所示。

image 2024 04 17 23 01 44 906
Figure 5. 表16.1 MongoDB数据库与MySQL数据库的区别

MongoDB 中创建数据库时,直接输入 “use数据库名” 命令即可。use 命令使用后,db 对象会自动变更到创建的数据库中,如图 16.21 所示。

image 2024 04 17 23 02 27 908
Figure 6. 图16.21 创建数据库

使用 createCollection() 方法可以创建集合,参数为要创建的集合的名称,例如,创建一个名称为 products 的集合,代码如下:

db.createCollection('products')

效果如图 16.22 所示。

image 2024 04 17 23 04 13 285
Figure 7. 图16.22 创建集合

添加数据

使用 save() 方法可以向 MongoDB 数据库中添加数据,这里需要注意的是,添加数据时,MongoDB 数据库中的数据是以键值对的形式存储的,所以 save() 方法中的参数也必须是键值对的形式。例如,向 MongoDB 数据库中插入一条数据,可以使用下面代码:

db.products.save({name:'pencil',price:500})

效果如图 16.23 所示。

image 2024 04 17 23 05 31 513
Figure 8. 图16.23 添加数据

按照上面的方式,分别执行下面的语句,向 MongoDB 数据库中多添加一些数据,以便后期的测试:

db.products.save({name:'eraser',price:500})
db.products.save({name:'notebook',price:2000})
db.products.save({name:'glue',price:700})
db.products.save({name:'scissors',price:2000})
db.products.save({name:'stapler',price:3000})
db.products.save({name:'pen',price:1000})

效果如图 16.24 所示。

image 2024 04 17 23 06 53 730
Figure 9. 图16.24 添加多条数据

查询数据

MongoDB 数据库中添加数据后,如果想要查询集合中的全部数据,可以使用 find() 方法,代码如下:

db.products.find()

效果如图 16.25 所示。

image 2024 04 17 23 07 50 337
Figure 10. 图16.25 查询全部数据

使用 find() 方法除了可以查询全部数据,还可以在查询数据时设置一些条件,例如,查询全部数据,但不显示 id,代码如下:

db.products.find({},{_id:false})

效果如图 16.26 所示。

image 2024 04 17 23 08 43 194
Figure 11. 图16.26 隐藏id属性

再比如,查询 price 等于 500 的所有数据,并且不显示 id,可以使用下面代码:

db.products.find({price:500},{_id:false})

效果如图 16.27 所示。

image 2024 04 17 23 10 01 266
Figure 12. 图16.27 查询满足指定条件的数据

另外,MongoDB 数据库中还提供了一个 findOne() 方法,用来查询第一条数据,使用方法如下:

db.products.findOne()

效果如图 16.28 所示。

image 2024 04 17 23 10 54 154
Figure 13. 图16.28 查询第一条数据

findOne() 方法的使用与 find() 方法类似,也可以设置不显示某列,或者查询满足指定条件的数据。

修改数据

修改数据时,首先需要使用 findOne() 方法根据指定的条件找到要修改的数据,并存储到一个变量中,然后通过设置该变量的指定属性,为其重新赋值,最后使用 save 方法保存修改后的变量即可。

例如,修改 name 属性为 pencil 的数据,将其 price 值修改为 800,代码如下:

var temp= db.products.findOne({name:'pencil'})
temp.price=800
db.products.save(temp)

上面的 3 行代码需要在 MongoDB 的 “命令提示符” 对话框中分别执行。

image 2024 04 17 23 12 27 244
Figure 14. 图16.29 修改数据

删除数据

删除数据非常简单,使用 remove() 方法即可。例如,删除 name 属性值为 pen 的数据,代码如下:

db.products.remove({name:'pen'})

效果如图 16.30 所示。

image 2024 04 17 23 13 23 747
Figure 15. 图16.30 删除数据