什么是 MongoDB 控制台
MongoDB 控制台是一个交互式命令行工具,可用于管理 MongoDB 数据库。与其他关系型数据库不同的是,MongoDB 控制台使用 JavaScript 语言进行交互,其中包括 CRUD(创建、读取、更新、删除)和聚合查询操作。
通过控制台连接 MongoDB 数据库
启动 MongoDB 服务
在打开 MongoDB 控制台之前,必须先启动 MongoDB 服务。打开命令行窗口或终端,在命令行中输入以下命令:
mongod
如果 MongoDB 服务器正常启动,您将在命令行提示符下看到以下一行输出:
[initandlisten] waiting for connections on port 27017
这意味着您已成功启动 MongoDB 服务器端。
连接到 MongoDB 数据库
在启动 MongoDB 服务器后,打开另一个命令行窗口或终端,并输入以下命令连接到 MongoDB 数据库:
mongo
如果一切正常,您将看到以下输出:
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("0352275a-eb71-494b-9bbd-d52fc4a25eab") }
MongoDB server version: 4.2.1
>
您已成功连接到 MongoDB 数据库。
使用 MongoDB 控制台进行 CRUD 操作
创建文档
要使用 MongoDB 控制台创建一个文档,请按照以下步骤进行:
选择数据库:使用以下命令选择要使用的数据库:
use testdb
选择集合:
db.createCollection("testcollection")
插入文档:
db.testcollection.insertOne({ name: "John", age: 35, address: { street: "123 Main St", city: "Anytown", state: "CA" } })
检索文档:
db.testcollection.find()
此命令将检索 testcollection 集合中的所有文档,并将这些文档作为结果集返回。
更新文档
要在 MongoDB 控制台中更新文档,请使用以下命令:
db.testcollection.updateOne({ name: "John" }, { $set: { age: 40 } })
这将在 testcollection 集合中更新名为 John 的文档的年龄字段。
删除文档
要在 MongoDB 控制台中删除文档,请使用以下命令:
db.testcollection.deleteOne({ name: "John" })
这将从 testcollection 集合中删除名为 John 的文档。
使用 MongoDB 控制台进行聚合查询
除了 CRUD 操作之外,MongoDB 还支持聚合查询,其中通过连接多个文档执行复杂的分析操作。以下是一些 MongoDB 控制台中可用的聚合查询:
使用 $group 和 $sum 对文档进行聚合
使用以下命令可对 testcollection 集合中的文档进行聚合,并计算每个唯一名称值的总年龄:
db.testcollection.aggregate(
[
{
$group:
{
_id: "$name",
totalAge: { $sum: "$age" }
}
}
]
)
使用 $match 和 $group 进行聚合
使用以下命令,查询 testcollection 集合中 age 大于 35 的文档,并按名称对它们进行分组:
db.testcollection.aggregate(
[
{ $match : { age : { $gt : 35 } } },
{
$group:
{
_id: "$name",
totalAge: { $sum: "$age" }
}
}
]
)
结论
通过 MongoDB 控制台,您可以轻松管理和操作 MongoDB 数据库。从基本的 CRUD 操作到复杂的聚合查询,MongoDB 控制台提供了许多功能,您可以使用它来加速您的开发和生产环境管理工作。