mongodb基本操作

本文详细介绍了MongoDB数据库的基础操作,包括新建、查看、删除数据库,以及集合的创建、删除,文档的插入、更新、删除和查询,还有聚合查询中的常用管道操作符如$group、$limit等实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库操作

新建数据库

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.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():插入多文档方法。

文档更新  

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

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

修改器作用
$inc递增
$rename重命名列
$set修改列值
$unset删除列

文档删除 

删除单个 

db.COLLECTION NAME.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)

删除全部 

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():格式化查询返回结果 

聚合查询

聚合操作

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

常见管道操作符相关说明
$group将集合中的文档进行分组,便于后续统计结果
$limit用于限制MongoDB聚合管道返回的文档数
$match用于过滤数据,只输出符合条件的文档
$sort将输入的文档先进行排序,再输出
$project用于修改输入文档的结构(增加、删除字段等)和名称
$skip在聚合管道中跳过指定数量的文档,并返回剩余的文档
db.集合名称.aggregate([
{管道:{表达式}}
....
])

案例学习 

准备集合c5,插入文档(注意,一般不指定_id,键也不需要双引号)

db.c5.insert([
{ id:"1",name:"iphone8",price:3000,type:"电子通讯"},{ id:"2",name:"lining",price:500,type:"运动鞋"},
{ id:"3",name:"安踏",price:300,type:"运动鞋"},
{ id:"4",name:"HUAWEI MATE30",price:5000,type:"电子通讯"},{ id:"5",name:"vivo x27",price:4000,type:"电子通讯"}])
 练习1

使用$group操作符,将集合c5中的文档按type进行分组,具体命令如下。

db.c5.aggregate([{$group:{" id":"$type"}}]).pretty()
 练习2

 使用$limit操作符,展示集合c5中前三个文档,具体命令如下。

db.c5.aggregate({$limit:3}).pretty()
练习3 

使用$match操作符,将集合c5中键name的值为HUAWEI MATE30的文档查询出来,具体命令如下。

db.c5.aggregate([{$match:{"name":"HUAWEI MATE30"}}]).pretty()
练习4 

使用$sort操作符,将集合c5中的文档按照键price的值进行降序排序,具体命令如下。

db.c5.aggregate([{$sort:{"price": 1}}]).pretty()
练习5 

使用$project操作符,展示集合c5中的文档,并且文档均不包含字段_id,具体命令如下。

db.c5.aggregate([{$project:{" id":0}}]).pretty()
练习6 

使用$skip操作符,展示集合c5中的_id为5的文档(即跳过前面的4个文档),具体命令如下。

db.c5.aggregate({$skip:4}).pretty()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值