MongoDB:基础语句及练习
一 基本命令
1.显示所有数据库
show dbs show databases
2.进入某个数据库
use 数据库名称
3.显示当前数据库信息
db.stats()
4.显示当前数据库的所有集合
show collections
5.显示当前数据库
db
在 MongoDB 里,数据库和集合都不用手动创建: 当使用“use 数据库名称”命令时,如果数据库不存在,会自动创建数据库 当使用“db..insert()”命令插入文档时,如果集合不存在,会自动创建集合 (也可以用命令创建集合,格式为 db.createCollection("集合名称"))
6.集合的删除
db..drop()
7.删除当前数据库
db.dropDatabase()
二 CRUD(增删改查)操作
1.插入文档
db..insert(document)
- 插入一个或多个文档(文档要用大括号括起来,如果要插入多个文档,要使用数组用[]括起来)
db.s.insert({sno:"1001",sname:"张三"})db.s.insert([{sno:"1002",sname:"李四"},{sno:"1003",sname:"王五",ssex:"男"}])
注:当向集合中插入文档时,如果没有给文档指定_id 属性,则数据库会自动为文档添 加_id,该属性用来作为文档的唯一标识。也可以自己指定_id 列的值,但必须确保它的唯一性。
db.s.insert({_id:"hello",sno:"1004",sname:"王大力"}))
db.insertOne(document) --插入一个文档
例:db.s.insertOne({sno:"1005",sname:"李浩 "})
db..insertMany(document array) --插入多个文档
例:db.s.insertMany([{sno:"1006",sname:"李四四"},{sno:"1007",sname:"王五五",ssex:" 男"}]
2.查询
db.find()
- 不写或者{}空文档:查询集合中所有的文档
- 可以接收一个对象作为条件参数
- {属性:值} 查询属性值是指定值的文档 例:db.s.find({sno:"1002"})
3.多条件查询
- 与的关系
db.s.find({sname:"zhangsan",sage:20})
db.s.find({$and:[{sage:{$gte:18}},{sage:{$lte:20}}]})
- 或的关系
db.s.find({$or:[{sname:"zhangsan"},{sage:18}]})
- $in 运算符
db.stu.find({sname:{$in:["zhangsan","John"]}})
- find()返回的是一个数组
db.s.find({sage:11})[0] --返回满足条件的第一个文档
4.特殊查询
db.find().count() --统计查询结果的数量
db.findOne() --查询满足条件的第一个文档
db. find({sage:null}) --查找 null 值字段
-文档查询结果以树形结构显示
db.find().pretty()
--如果查询结果只显示部分文档内容,可以设置第二个参数,将需要显示的字段对应值设 置为 1
例:db.s5.find({},{sno:1,sname:1}) --只显示 sno 和 sname 两个字段
--如果只在结果中显示具体的内容字段,不包含_id 字段,可以在第二个参数把_id 对应值 设为 0
例:db.s5.find({},{_id:0})
5.修改
db.collection.update(查询条件,新对象,{ upsert:, multi:})
- upsert:如果不存在查询条件查出的记录,是否插入一条数据,默认是 false
- multi:是否只修改查询条件查出的第一条记录,默认是 false
update()默认情况会使用新对象替换旧对象
db.s.update({sname:"zhangsan"},{sage:20}) --文档只剩下 sage 属性
如果需要修改指定的属性,而不是替换,需要使用修改操作符完成:
$set 可以修改文档中的指定属性(可以修改或添加属性)
db.s.update({sname:"lisi"},{$set:{sage:20}}) db.s.update({sno:"1001"},{$set:{sage:44,addr:"hebei"}})
$unset 用来删除文档指定的属性
db.s.update({sname:"wangwu"},{$unset:{sage:9}})
update()默认修改符合条件的第一个文档,默认和 updateOne 功能相同。如果要修改所有 文档,需要设置第 multi 参数
db.s.update({sname:"lisi"},{$set:{sage:10}},{multi:true}) upsert
列改名
db.s.update({},{$rename:{"address":"addr"}},{multi:true})
$inc 与$mul
-- 所有人的年龄加 1db.s.update({},{$inc:{sage:1}},{multi:true})-- 所有人的年龄乘 2
db.s.update({},{$mul:{sage:2}},{multi:true})
6.删除
db.collection.remove()
remove()删除满足条件的文档,条件的传递方式和 find()一样,默认删除的是所有符合条件的文档
db.s.remove({sname:"lisi"})
如果想删除满足条件的第一个文档,需要设置第二个参数:
db.s.remove({sage:20},true)
如果要删除集合中所有的文档,传递的参数要为一个空对象{},而且不能省略 :
db.s.remove({})
三 补充
复制集合 s,新生成集合为 s2
b.s.find({}).forEach(function(x){db.s2.insert(x)}) --复制集合 s,新生成的集合为 s2
--导入导出 json 文件 mongoe
xport -d test -c s -o d:\s.json--导出 test 数据库的集合 s 中的数据到 s.json 文件mongoimport -d test -c s d:\s.json --把 s.json 文件中的数据库导入到 test 数据库的 s5 集合中(参数说明:-d 指明使用的库 -c 指明要导出的表 -o 指明要导出的文件名及路径)
--导入导出 csv 文件
mongoexport -d test -c s -o d:\s.csv --type csv -f sno,sname,ssex,sagemongoimport -d test -c s3 --type csv --file d:\s.csv –headerline
相关文章:
MongoDB:基础语句及练习
一 基本命令 1.显示所有数据库 show dbs show databases 2.进入某个数据库 use 数据库名称 3.显示当前数据库信息 db.stats() 4.显示当前数据库的所有集合 show collections 5.显示当前数据库 db 在 MongoDB 里,数据库和集合都不用手动创建: 当使用“us…...
百度智能云创新业务部总经理李想:发挥AI企业科技创新优势 助力职业教育人才扬帆远航
前言:百度智能云教育行业解决方案作为百度智能云旗下的创新力量,专注于培养“AI教育”领域的新质生产力人才,一直以来备受职业教育领域的关注。在第六届人工智能“职教百强”院校长论坛开幕之际,中教全媒体对话论坛嘉宾百度智能云…...
了解股票沽空及其风险
什么是股票沽空? 股票沽空是一种投资策略,投资者通过借入股票并在市场上卖出,期望在未来以更低的价格买回股票,以赚取价差收益。这一策略在市场下跌时尤为常见,因为投资者可以从股票价格的下跌中获利。 股票沽空的…...
【Sql Server修改列类型错误信息:对象名依赖于列】
Sql Server修改列类型错误信息:对象名依赖于列 报错信息解决方法测试sql语句 报错信息 修改表中列类型,发生报错如下: [SQL Server]对象DF__Forecast___isCal__4E746892 依赖于 列isCalcFinished。 (5074) [42000] [Microsoft][ODBC Driver…...
【ACM珠海分会,IEEE Fellow加盟,CPS出版】第四届管理科学和软件工程国际学术会议(ICMSSE 2024,7月19-21)
第四届管理科学和软件工程国际学术会议(ICMSSE 2024)由ACM珠海分会,广州番禺职业技术学院主办;全国区块链行业产教融合共同体,AEIC学术交流中心承办,将于2024年7月19-21日于广州召开。 会议旨在为从事管理与软件工程领域的专家学…...
kmeans.fit_predict 和 kmeans.fit有什么区别
KMeans 是 scikit-learn 库中用于执行 K-means 聚类算法的类。fit_predict 和 fit 是该类中的两个方法,的主要区别在于返回的内容和用途。 kmeans.fit: 用途: 用于训练 K-means 模型。输入: 接受一个特征矩阵(通常是二维数组)作为输入。输出:…...
香港优才计划续签难吗?一次性说清楚优才续签要求,不在香港居住也能续签成功!
香港优才计划续签难吗?这个问题对考虑申请优才的人来说,还是挺重要的。我们申请优才,最关注的2个问题,一个是获批,还有一个就是续签了。 毕竟我们费那么大功夫申请优才,可不只是为了一个为期3年的香港临时…...
react获取访问过的路由历史记录
看了下,好像没有很好的解决方案,之前的useHistory现在也用不了了, chatgpt说使用useMatch,也报错 看了下浏览器原生的。本来浏览器就会限制这个histroy的读取,只能获取length https://developer.mozilla.org/zh-CN/…...
基于深度学习的点云降噪
基于深度学习的点云降噪是一种利用深度学习模型处理三维点云数据,以去除噪声并恢复点云的原始形状和细节的方法。点云数据广泛应用于自动驾驶、机器人导航、3D扫描和虚拟现实(VR)等领域,因此高质量的点云数据处理至关重要。以下是…...
数据结构-二叉搜索树与红黑树
4.二叉搜索树 又叫二叉查找树、有序二叉树、排序二叉树。树中任意一个结点,其左子树的每个节点值都要小于该节点,其右子树的每个节点值都要大于该节点 作用:能够进行快速查找、插入、删除操作 4.1 二叉搜索树的时间复杂度 注:二…...
52771-009P 同轴连接器
型号简介 52771-009P是Southwest Microwave的连接器。这款连接器外导体外壳、耦合螺母和电缆夹紧螺母都采用了不锈钢 UNS-S30300 材料。不锈钢具有优异的耐腐蚀性和机械强度,能够保证连接器在各种恶劣环境下都能稳定工作。 型号特点 中心触点、外壳、衬套固定环&am…...
鸿蒙语言基础类库:【@ohos.util.Vector (线性容器Vector)】
线性容器Vector 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Vect…...
使用Python绘制堆积面积图
使用Python绘制堆积面积图 堆积面积图效果代码 堆积面积图 堆积面积图是面积图的一种扩展,通过堆积多个区域展示不同类别数据的累积变化。常用于显示不同部分对整体的贡献。 效果 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pQbW4F…...
代码还原动态调试之 pstree 乘法变加法
乘法编译后,生成加法汇编,提升CPU执行效率; 406a: 85 ff test %edi,%edi // x ? 0406c: 0f 84 7e 00 00 00 je 40f0 <__sprintf_chkplt0x1980>*/int digits, div;if (x ! 0) {/*4072: 89 fd …...
C++:获取当前可执行核心数(开辟线程)
sysconf(_SC_NPROCESSORS_ONLN) 是一个在 POSIX 兼容系统上广泛使用的函数,它用于获取当前系统上可用的处理器(CPU 核心)的数量。这个函数是 sysconf 函数的一个特定调用,其中 _SC_NPROCESSORS_ONLN 是一个常量,指定了…...
【简历】吉林某985大学:JAVA实习简历指导,面试通过率相当低
注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 这份简历是一个顶级985吉林大学的同学投Java职位的简历。因为学校是顶级985,所以他的大厂简历通过率是比较高的,…...
C#中的MD5摘要算法与哈希算法
文章目录 一、哈希算法基础二、MD5 算法原理三、MD5摘要算法四、哈希算法五、C#实现示例MD5算法示例哈希算法示例字符串MD5值对比 六、总结 一、哈希算法基础 哈希算法是一种单向密码体制,它将任意长度的数据转换成固定长度的字符串。这种转换是不可逆的࿰…...
使用 python 构建企业级高可用海量爬虫调度系统
一、引言 在大数据时代,信息的获取与分析成为了企业决策的重要依据。对于营销行业而言,实时抓取和分析竞争对手动态、市场趋势以及用户反馈等数据,是制定有效策略的关键。然而,构建一个高可用的、能够处理海量数据的爬虫调度系统…...
IDEA常用技巧荟萃:精通开发利器的艺术
1 概述 在现代软件开发的快节奏环境中,掌握一款高效且功能全面的集成开发环境(IDE)是提升个人和团队生产力的关键。IntelliJ IDEA,作为Java开发者的首选工具之一,不仅提供了丰富的编码辅助功能,还拥有高度…...
GD32F303之CAN通信
1、CAN时钟 GD32F303主时钟频率最大是120Mhz,然后APB1时钟最大是60Mhz,APB2时钟最大是120Mhz,CAN挂载在APB1总线上面 所以一般CAN的时钟频率是60Mhz,这个频率和后面配置波特率有关 2、GD32F303时钟配置 首先我们知道芯片有几个时钟 HXTAL:高速外部时钟࿱…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
