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:高速外部时钟࿱…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...

倒装芯片凸点成型工艺
UBM(Under Bump Metallization)与Bump(焊球)形成工艺流程。我们可以将整张流程图分为三大阶段来理解: 🔧 一、UBM(Under Bump Metallization)工艺流程(黄色区域ÿ…...