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:高速外部时钟࿱…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...

ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...

Android Framework预装traceroute执行文件到system/bin下
文章目录 Android SDK中寻找traceroute代码内置traceroute到SDK中traceroute参数说明-I 参数(使用 ICMP Echo 请求)-T 参数(使用 TCP SYN 包) 相关文章 Android SDK中寻找traceroute代码 设备使用的是Android 11,在/s…...