MongoDB下载与基本使用(mac图文详解)
目录一、下载安装
1.1 官网下载mongoDB
1.1.1 mongoDB
1.1.2 MongoDB GUI
1.2 下载流程
二、基本使用
2.1 创建数据库和聚集
2.2 插入
2.3 查询
2.4 修改
2.5 删除
三、case
3.1 销售case
3.1.1 实操
3.1.2 全部指令汇总
背景:
个人训练用
一、下载安装
1.1 官网下载mongoDB
1.1.1 mongoDB
Download MongoDB Community Server | MongoDB
1.点进去什么好像可以自动给你选好,下载安装包的同学可以参考Mac 最新安装MongoDB数据库步骤+ 可视化软件MongoDB Compass - 简书
2.我电脑装好了brew,所以选择的终端实行指令下载,建议大家多看看指令安装过程中的提示,很详细
https://i-blog.csdnimg.cn/direct/a6809ddd137241279579ff157d72a9e8.png
1.1.2 MongoDB GUI
可视化软件 ---> MongoDB Compass下载,下载链接
MongoDB Compass Download (GUI) | MongoDB
1.2 下载流程
1.下载
https://i-blog.csdnimg.cn/direct/2c2065634bd94c32b0f6af963cb9bc53.png
2.提示的很清楚,去网站创建账,然后把终端验证码贴到网页里,资助你创建Atlas databas
https://i-blog.csdnimg.cn/direct/2d228aceeb3947029679caecfe60d3cb.png
3.终端提示的指令举行毗连。毗连成功
https://i-blog.csdnimg.cn/direct/ffadaea1ed4942e88c5649289ccb5ec2.png
1.下载 MongoDB Compass 待更新
https://i-blog.csdnimg.cn/direct/a8dc9fb76b4c429ca1282b17d431aa1a.png
点击
https://i-blog.csdnimg.cn/direct/dd2289ba684c4faaa7d795e0ca1cf488.png
二、基本使用
2.1 创建数据库和聚集
1.指令:
-- 切换到要使用的数据库(如果不存在则会自动创建)
use yanhan_db
-- 创建集合
db.createCollection("test") 2.实操:
https://i-blog.csdnimg.cn/direct/ac4259421741410e97b749dfe6a671e3.png
2.2 插入
1.指令:
-- 插入单个文档:
db.yanhan_db.insertOne({name:"john", age: 21})
-- 插入多个文档:(要用中括号包起来)
db.yanhan_db.insertMany([{name:"miky", age: 18}, {name:"king", age: 19}])
2.实操:
插入一条
https://i-blog.csdnimg.cn/direct/015c289844054592b16f2978a86675c6.png
插入多条
https://i-blog.csdnimg.cn/direct/8af8d05f282246d5a364618c668ee0d0.png
2.3 查询
1.指令
-- 查询所有文档:
db.yanhan_db.find()
-- 查询满足条件的文档:gt是greater than
db.yanhan_db.find({age:{$gt:18}}) 2.实操:
查询全部
https://i-blog.csdnimg.cn/direct/f22818855de9492ca12240636e45710e.png
条件查询:查询 yanhan_db 数据库中年事大于 18 岁的文档,符合条件的两个文档的详细信息。
https://i-blog.csdnimg.cn/direct/b19fde860aa94f49b7921d6ae620aff1.png
2.4 修改
1.指令:
-- 更新单个文档:
db.yanhan_db.updateOne({name:"miky"},{$set:{age:100}})
-- 更新多个文档:lt小于,$set 更新
db.yanhan_db.updateMany({ age: { $lt: 35 } }, { $set: { status: "Active" } }) 2.实操:
更新一个文档,https://i-blog.csdnimg.cn/direct/008df2e4ffc04033b1a380292f41359f.png
更新了 yanhan_db 数据库中年事小于 35 岁的全部文档,将它们的 status 字段设置为 "Active"。
https://i-blog.csdnimg.cn/direct/23754366d4494e3a9a998dbc217c0c08.png
2.5 删除
1.指令:
-- 删除单个文档,name值为'Sally'的记录:
db.yanhan_db.deleteOne({ name: "miky" })
-- 删除多个文档,status值为'Active'的记录:
db.yanhan_db.deleteMany({ status: "Active" }) 2.实操:https://i-blog.csdnimg.cn/direct/e2ff55295cb44da8a726d0324098ef39.png
三、case
3.1 销售case
3.1.1 实操
1.创建
https://i-blog.csdnimg.cn/direct/d1cb9713623f472fac9e35fb4cee4f75.png
2.插入数据
https://i-blog.csdnimg.cn/direct/cdf1723305af4da2a577b9eda8e490de.png
3.查询全部
https://i-blog.csdnimg.cn/direct/87997f662de540ce9c678d06f60e72b1.png
4.聚合指令,计算每个客户的总销售额和订单数目
指令表明:
[*] $group :
[*]{ $group: { _id: "$customer", ... } }:按照 customer 举行分组。
[*]totalSales 字段: $multiply 计算每个订单的销售额,用"$quantity", "$unit_price"相乘,然后用 $sum 把计算好的结果相加。
[*]totalOrders 字段:每当遇到一个订单就加一,使用 { $sum: 1 } 计算总订单数目。
[*] $sort :
[*]{ $sort: { totalSales: -1 } }:按照 totalSales 字段举行降序排序,总销售额最高在前。-1降序,1升序
实操展示:
https://i-blog.csdnimg.cn/direct/540fcb55b05b49019e17169b77abb418.png
5.查找每种产物的均匀销售价格和销售数目
指令表明:
[*] $group :
[*]_id: "$product":按照 product 字段的值举行分组,每个唯一的产物名称作为分组的依据。
[*]avgPrice: { $avg: "$unit_price" }:计算每个产物的均匀单价。
[*]totalQuantity: { $sum: "$quantity" }:计算每个产物的总销售数目。
[*] $sort :
[*]按照 _id 字段(产物名称)举行升序排序。
实操:
https://i-blog.csdnimg.cn/direct/398d3ff6949f46fd8aba2d90b932437f.png
6.筛选特定日期范围内的销售订单并投影字段,从 sales 聚集中选择指定日期范围内的订单数据,然后计算每个订单项的销售总额,并保存 order_id、product、quantity 和 totalAmount 这些字段。
指令表明:
[*] $match 阶段:
[*]使用 $match 阶段筛选 order_date 字段在 2024-06-01 到 2024-06-30 之间的订单。
[*] $project 阶段:
[*]使用 $project 阶段重塑输出文档,保存 order_id、product 和 quantity 字段,并计算新的字段 totalAmount。
[*]totalAmount:计算销售总额,和上面的一个查询相同。
其他:
[*]使用字段投影,通过指定字段名和值 1 或 0 控制输出文档中是否包罗特定字段。
[*]gte:表示 "greater than or equal",即大于或便是
[*]lte:表示 "less than or equal",即小于或便是
实操
https://i-blog.csdnimg.cn/direct/66d8d2b4707d43d891199eb8b70e870e.png
7.删除表
db.sales.drop() https://i-blog.csdnimg.cn/direct/4ab4e9cd55584bed9c21367cb939b092.png
3.1.2 全部指令汇总
-- 创建 sales
use sale
-- 创建 sales 集合并插入示例文档
db.sales.insertMany([
{
"order_id": 1001,
"product": "Laptop",
"quantity": 2,
"unit_price": 1200,
"customer": "Alice",
"order_date": ISODate("2024-06-07T08:30:00Z")
},
{
"order_id": 1002,
"product": "Monitor",
"quantity": 1,
"unit_price": 500,
"customer": "Bob",
"order_date": ISODate("2024-06-10T10:15:00Z")
},
{
"order_id": 1003,
"product": "Keyboard",
"quantity": 3,
"unit_price": 50,
"customer": "Alice",
"order_date": ISODate("2024-06-15T14:45:00Z")
},
{
"order_id": 1004,
"product": "Mouse",
"quantity": 5,
"unit_price": 20,
"customer": "Charlie",
"order_date": ISODate("2024-07-09T09:30:00Z")
}
])
-- 查询sales全部
db.sales.find()
-- 计算每个客户的总销售额和订单数量
db.sales.aggregate([
{
$group: {
_id: "$customer", // 按客户分组
totalSales: { $sum: { $multiply: ["$quantity", "$unit_price"] } }, // 计算总销售额,使用 $multiply 计算每个订单的销售额,然后用 $sum 计算每个客户的总销售额
totalOrders: { $sum: 1 } // 计算总订单数量,每次遇到一个订单就加一
}
},
{ $sort: { totalSales: -1 } } // 根据 totalSales 字段进行降序排序,显示总销售额最高的客户在前面
])
-- 查找每种产品的平均销售价格和销售数量
db.sales.aggregate([
{
$group: {
_id: "$product",
avgPrice: { $avg: "$unit_price" },
totalQuantity: { $sum: "$quantity" }
}
},
{ $sort: { _id: 1 } } // 按产品名称升序排序
])
--筛选特定日期范围内的销售订单并投影字段
db.sales.aggregate([
{
$match: {
order_date: {
$gte: ISODate("2024-06-01"),
$lte: ISODate("2024-06-30")
}
}
},
{
$project: {
order_id: 1,
product: 1,
quantity: 1,
totalAmount: { $multiply: ["$quantity", "$unit_price"] }
}
}
])
-- 删除 sales 集合
db.sales.drop()
参考:MongoDB安装、基础操纵和聚合实例先容_MongoDB_脚本之家
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]