MongoDB简介及基本操作

本文详细介绍了MongoDB的常规操作,包括数据库的创建、查看和删除,集合的管理,文档的插入、更新、删除以及查询,以及使用聚合管道进行数据分析,如统计价格、数量和计算平均值等。

MongoDB常规操作

新建数据库

语法:

use DATABASE NAME

use:用于切换/创建数据库,若不存在则创建,否则切换到指定数据库。
DATABASE_NAME:数据库名称。
执行use articledb命令,创建数据库articledb。

查看数据库

语法: 查看全部数据库

show dbs

或者查看当前数据库,需要先切换到指定数据库

db

删除数据库

语法

db.dropDatabase()

db:表示当前数据库对象。
dropDatabase():用于删除当前数据库的方法。
删除当前数据库,执行命令前应使用use命令切换到要删除的数据库,为了防止误删可执行命令db验证当前数据库是否为指定删除的数据库。

集合操作

创建集合

语法

显示创建
db.createCollection(COLLECTION NAME, [OPTIONS])
隐式创建
db.COLLECTION NAME.insert(DOCUMENT)

  • db:表示当前数据库对象。
  • createCollection():创建集合方法。
  • DOCUMENT表示文档。
  • COLLECTION_NAME表示集合名称。
  • OPTIONS表示集合配置。
  • insert():向集合中插入文档的方法。

删除集合

语法

db.COLLECTION NAME.drop()

  • db:表示当前数据库对象。
  • COLLECTION_NAME:表示集合名称。
  • drop():删除集合方法。

文档操作

文档插入

语法(单文档插入)

db.COLLECTION NAME.insert(document)

或者

db.COLLECTION NAME.save(document)

语法(多文档插入)

db.COLLECTION NAME.insertMany([document1,document2,…])

  • db:当前数据库对象
  • COLLECTION_NAME: **当前集合对象。
  • insert() 和save():插入单文档方法。
  • insertMany():插入多文档方法。

insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。若使用save()方法插入文档时,集合中已存在该文档,则会覆盖。

文档更新

语法

db.COLLECTION NAME.update(criteria,objNew,upsert, multi)

  • db:当前数据库对象。
  • COLLECTION_NAME: 当前集合对象。
  • update():更新文档方法。
  • criteria: 更新的查询条件,类似sql中的where。
  • objNew:新的对象和操作符,类似sql中的set。
  • upsert:不存在更新对象时,是否插入,默认为false
  • multi:默认为false,只更新查找到的第一个文档,反之更新所有。

升级语法

db.集合名.update(条件, 新数据){修改器: {键:值}}

在这里插入图片描述

文档删除

语法(删除单个)
在这里插入图片描述

删除全部文档

db.COLLECTION NAME.remove({})

  • db:当前数据库对象。
  • COLLECTION_NAME:当前集合对象。
  • remove():删除文档方法。
  • query:删除文档的条件,可选参数。
  • justOne:的boolean为true或1时,表示只删除查询出的第一个文档。
  • writeConcern: 表示抛出异常级别。

文档简单查询

查询所有文档语法

db.COLLECTION NAME.find()

查询所有文档,以易读的方式展示

db.COLLECTION NAME.find().pretty()

  • db:当前数据库对象
  • COLLECTION_NAME:当前集合对象
  • find():查询所有文档方法
  • pretty():格式化查询返回结果

聚合操作

聚合管道操作是将文档在一个管道处理完毕后,把处理的结果传递给下一个管道进行再次处理。聚合管道是使用不同的管道阶段操作器进行不同聚合操作,管道阶段操作器也可称为管道操作符,常见管道操作符如下表。
在这里插入图片描述

语法(略复杂)

在这里插入图片描述
其中“[]”不是必须的,可以省略!!!

常用表达式

管道阶段操作器的值被称为管道表达式,并且每个管道表达式都是一个文档结构,由字段名称、字段值和管道表达式组成。常见的管道表达式如下表。
在这里插入图片描述

案例说明

练习1:统计运动鞋和电子通讯的价格price

db.c5.aggregate([
{
KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{ id: "type",
rs: { s u m : " sum: " sum:"price"}
}
}
])
//对于 g r o u p 分组 i d 是必选项,选择字段 t y p e 进行分组时,字段前面要加上 group分组 id是必选项,选择字段type进行分组时,字段前面要加上 group分组id是必选项,选择字段type进行分组时,字段前面要加上符号
//rs为新增的列,存放统计数据,男女生的总年龄计算使用$sum
// id和rs都可以加上双引号,没有差别

在这里插入图片描述
练习2 统计运动鞋和电子通讯的个数

db.c5.aggregate([
{
KaTeX parse error: Expected '}', got 'EOF' at end of input: …roup:{ " id": "type",
"
gs
"
:
{KaTeX parse error: Expected 'EOF', got '}' at position 7: sum: 1}̲ } } ]) //这里没有c…sum:1代替(匹配多少次,就多少个1相加),这里展示 id和gs加上双引

在这里插入图片描述
练习3 求商品总数和平均价格

db.c5.aggregate([
{
KaTeX parse error: Expected '}', got 'EOF' at end of input: …ll, total num:{sum:1},
total price avg:{ a v g : " avg:" avg:"price"}
}
}
])

这里求的是总人数,管道依然可以选择分组,但是没有分组字段,所以_id为null
total_num为新增的列,存放总数
total_price_avg为新增的列,存放平均价格
在这里插入图片描述
练习4:使用$min表达式,将集合陈中的文档按类型type进行分组,并计算各个分组中价格price最小值,具体命令如下。

db.c5.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{" id":"type",“price”:{ m i n : " min:" min:"price"}}}]).pretty()

在这里插入图片描述
练习5 使用$max表达式,将集合c5中的文档按类型type进行分组,并计算各个分组中价格price最大
值,具体命令如下。

db.c5.aggregate([{KaTeX parse error: Expected '}', got 'EOF' at end of input: group:{" id":"type",“price”:{ m a x : " max:" max:"price"}}}]).pretty()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值