初学mongoDB(一)

简介: 初学mongoDB

mongoDB的基本操作

查看数据库

语法:show databases

效果:

af72d4d39ffa45c79e750739d7aa50cb.png

选择数据库

语法:use 数据库名称

效果:

bffb1744c2bd4ebb9a69e0071fe66feb.png

删除数据库

1.通过use选中数据库

2.通过db.dropDatabase()删除数据库

创建集合

语法:db.createCollection("集合名")

效果:

266af65850414c71876a47d72915c5e6.png

查看集合

语法:show collections

效果:

266af65850414c71876a47d72915c5e6.png

删除 集合

语法:db.集合名.drop()

效果:

018be507260e4f05b74f8c7d6d06be34.png

mongoDB文档的增删改查

增Create

语法:db.集合名.insert(JSON数据)

说明:集合存在则直接插入数据,集合不存在则隐式创建

练习:在test2数据库的c1集合中插入数据

use test2 
db.c1.insert({name:"yyqx",age:18})
/*注:
1.数据库和集合不存在都隐式创建
2.对象的键统一不加引号方便看,但是查看集合时系统会自动加
3.mongodb会给每条数据增加一个全球唯一的_id值
*/

aff92765662641e28720cfc93cd86fc4.png

注:

1.可以自己定义id值,只需在传入的对象中加一个_id的键

db.c1.insert({name:"ys",age:18,_id:1})

b9a607665809454b9d7c571099ca35f3.png

2.可以一次插入多条信息,使用一个数组

db.c1.insert([
  {name:"z3",age:3},
  {name:"z4",age:3},
  {name:"w5",age:3}
])

43114f31eb234b37a64560be3f09cf15.png

3.可以使用for循环插入多条信息

for(var i = 1;i <= 10;i++){
  db.c2.insert({name:"z"+ i,age:i})
}

2c689640bb0345c08a02918326d3bdf7.png

查Read

基础语法:db.集合名.find(条件[,查询的列])

条件:

  • 查询所有数据 -{}或者不写
  • 查询age=6的数据 -{age:6}
  • 既要age=6又要性别=男 -{age:6 ,sex:‘男’}

查询的列(可选参数):

  • 不写–这查询全部列
  • {age:1}只显示age列
  • {age:0}除了age列

注:不管你怎么写系统自定义的_id都会在

升级语法

db.集合名.find({键:值})注:值不直接写
    {运算符:值}
db.集合名.find({
  键:{运算符:值}
})

注:格式化:db.集合名.find().pretty()

运算符 作用

$gt 大于

$gte 大于等于

$lt 小于

$lte 小于等于

$ne 不等于

$in in

$nin not in

练习1:查询所有数据

8199c493e9c540f9827ca36925bbac57.png

练习2:查询年龄大于5岁的数据?

3a4d8d9e47c14397bbde58a53dccdf5c.png

练习3:查询年龄是5岁、8岁、10岁的数据?

95e52c93b55a40aaaff61a40e0d38472.png

练习4:只看年龄列,或者年龄以外的列(_id别管它)?

30077ffce7b247edb2d5544a3bfcb2b2.png

改Update

基础语法: db.集合名.update(条件,新数据〔,是否新增,是否修改多条])

  • 是否新增:指条件匹配不到数据则插入(true是插入,false否不插入默认)
  • 是否修改多条:指将匹配成功的数据都修改(true是,false否默认)

升级语法

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

修改器 作用

$inc 递增

$rename 重命名列

$set 修改列值

$unset 删除列

练习1:将{uname:“zs1"”}改为{uname:“zs2"”

7077213e986f4a868816562843aab521.png

发现:默认是修改而不是替换

解决:使用升级语法 修改器

9fa285e153d94871a7e175f9e43d14ec.png

练习2:给{uname:“zs10”}的年龄加2岁或者减2岁

e2f97275fa7f4a7aaacae128c11ace6b.png

练习3:修改器综合练习

插入数据: db.c4.insert( {uname:“神龙教主”,age:888,who:“男”,other:“非国人”});

完成需求:

uname改成yyds  (修改器:$set)
age增加111     (修改器:$inc)
who改字段sex   (修改器: $rename)
other 删除     (修改器: $unset)

d72dfa06c1f04cf384aee10dbe87634a.png

练习4:验证语法最后两个参数(了解)

【验证】是否新增true是false否:修改name等于zs30的年龄30岁

91f9c03cbb1b4b3e8de466cd42d92099.png

【验证】是否修改多条true是,false否默认

8c0e7d244a1f454fb58911ebf05a9059.png

612fd099e64b4d6a8275a7f9f057dca6.png

删Delete

语法: db.集合名.remove(条件[是否删除一条])

注意:是否删除—条true是,false否默认

9f7f087b5b974144b8e73e12a881ee92.png

排序与分页

排序

  • 语法:db.集台名.find().sort(JSON数据)
  • 说明:键-就是要排序的列/字段、值:1升序-1降序
  • 练习:年龄升序&降序

08b10eccb14c44539b22248dcfc45b09.png

分页(Limit与Skip方法)

语法: db.集合名.find().sort().skip(数字).limit(数字)

说明: skip跳过指定数量(可选),limit限制查询的数量

练习:1-降序查询查询2条,2-降序跳过2条并查询2条

168217e4e62f421dad69e10a7567d392.png

实战分页

语法: db.集合名.find().skip().limit(2)

需求:数据库1 -10数据,每页显示两条(5页)

skip计算公式:(当前页-1)*每页显示条数
1页   1 2     0
2页   3 4     2
3页   5 6     4
4页   7 8     6
5页   9 10    8

小总结

  • db.集合名.find()
  • sort({列: 1/-1})排序
  • skip(数字)跳过指定数量
  • limit(数字)限制查询条数
  • count()统计总数量


目录
相关文章
|
网络协议 Python
python中socket模块的导入和使用基础
【4月更文挑战第3天】Python的`socket`模块是网络编程的基础,用于创建套接字、绑定地址和端口、监听连接及数据传输。首先,使用`import socket`导入模块。接着,通过`socket.socket()`创建套接字,指定地址族(如`AF_INET`)和类型(如`SOCK_STREAM`)。然后,使用`bind()`方法绑定地址和端口,`listen()`方法监听连接。服务器端通过`accept()`接受连接,`recv()`接收数据,`send()`发送响应。客户端则用`connect()`连接服务器,`send()`发送数据,`recv()`接收响应。
|
4月前
|
机器学习/深度学习 人工智能 文字识别
DeepSeek 里的公式怎么复制到 Word、WPS?保留 LaTeX 和可编辑公式的方法
DeepSeek公式复制到Word/WPS常遇格式错乱、不可编辑等问题。本文详解用DeepShare插件按目标软件(Word/WPS/MathType/Markdown工具)选择LaTeX、Markdown或原生格式一键复制,保留可编辑性与专业排版,提升数理文档整理效率。
|
8月前
|
算法 C#
C# 实现字符串相似度计算(Levenshtein 算法)
介绍计算字符串编辑距离的算法,基于Levenshtein距离实现相似度分析,适用于搜索建议与拼写纠错,附C#代码示例。
|
6月前
|
安全 数据安全/隐私保护
Dataphin功能Tips系列(89)精准放行,安全无忧:动态脱敏白名单实现灵活的数据访问控制
企业数据治理中,需平衡安全与业务效率。Dataphin提供“动态脱敏白名单”功能,支持按用户、场景、数据范围及时间精准豁免脱敏,实现敏感数据“该脱则脱、该显则显”的精细化管控。
262 2
|
6月前
|
存储 人工智能 自然语言处理
玩转OpenClaw!基础介绍+功能场景+部署教程详细解读
OpenClaw是一款开源、本地优先的AI智能体执行网关,让大模型从“能说会道”升级为“能干实事”的数字员工。支持文件操作、浏览器自动化、多IM接入与任务编排,兼顾隐私安全与全场景自动化。
1873 7
|
人工智能 文字识别 安全
大模型能力评测方式很多?
AI评测非单一分数比拼,而是多维度、多方法的系统工程。其核心框架可拆解为基础维度、主流基准与关键方法,共同构成模型能力的“CT扫描”系统。
897 0
|
8月前
|
安全 前端开发 芯片
USB过压保护芯片,切断输入和输出,防护后端电路,带自恢复
USB过压保护芯片,切断输入和输出,防护后端电路,带自恢复
|
Linux
Centos查看已经安装的软件或者包
Centos查看已经安装的软件或者包
1331 0
|
11月前
|
缓存 前端开发 安全
5个核心DApp开发源码模块设计要点
DApp源码模块设计旨在提升可复用性与可维护性,通过清晰边界、最小单元、合约契合、安全审计与完善文档五大核心要素,实现链上链下协同的高效拆解。模块化架构支持快速拼接、降低风险,广泛应用于DEX、NFT市场与跨链场景,显著提升开发效率与系统安全性。(238字)
|
自然语言处理 监控 安全
SmolLM2:多阶段训练策略优化和高质量数据集,小型语言模型同样可以实现卓越的性能表现
SmolLM2 通过创新的多阶段训练策略、高质量数据集的构建与优化,以及精细的模型后训练调优,在 1.7B 参数规模下实现了卓越的性能表现,并在多个基准测试中超越了同等规模甚至更大规模的语言模型。
1194 73
SmolLM2:多阶段训练策略优化和高质量数据集,小型语言模型同样可以实现卓越的性能表现

热门文章

最新文章