Mongdb之Robo3T

news2024/7/6 20:20:06

 

 🏆今日学习目标:

🍀MyBatis详解
创作者:林在闪闪发光
⏰预计时间:30分钟
🎉个人主页:林在闪闪发光的个人主页

 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区

 

目录

1.安装

2 介绍

数据库

3.在CMD中的使用(不推荐)

4.在Robo3T中的使用(推荐)

4.1基础知识

4.2基本操作

4.3数据库CRUD(增删改查)操作

5.练习


别紧张,深呼吸,坚持住,扛过去。

Take it easy, take a deep breath, hang in there, get through it.

 

1.安装

傻瓜式安装 不会安装的可以搜一下

2 介绍

数据库

1.数据库的服务器

  • 用来保存数据
  • 用mongod启动

2.数据库的客户端

  • 客户端用来操作服务器,对数据进行增删改查的操作
  • mongo启动客户端

所以要先启动服务器,才能进行操作

3.在CMD中的使用(不推荐)

开启一个mongdb的服务器

1.在C盘根目录,创建一个data文件夹,在该文件夹里创建一个db文件夹

  • 不想放C盘也可以,选择一个地址创建data和db文件夹,然后cmd输入:mongod --dbpath dir。如:mongod --dbpath D:\data\db

2.打开cmd,输入mongod,启动mongodb服务器

  • 在浏览器地址输入:localhost:27017,出现“It looks like you are trying to access MongoDB over HTTP on the native driver port.”表示服务器启动成功
  • 27017是默认监听端口,如果想换一个,可以在cmd输入:mongod --dbpath dir --port XXX。如:mongod --dbpath D:\data\db --port 10086
  • 端口号尽量选择4位以上,不要超过65535

3.不要关闭该cmd,再打开一个cmd,输入mongo,出现>表示已连接到数据库

4.退出:ctrl+c

也可以不必每次手动开启,设置随电脑启动自动后台开启,具体设置不再阐述。

4.在Robo3T中的使用(推荐)

4.1基础知识

1.文档(document)

  • 在mongodb中每一条数据就是就是一个文档

2.集合(collocation)

  • 集合就是一组文档,也就是说集合是用来存放文档的
  • 集合中储存的文档可以是各种各样的,没有格式要求

3.数据库(database)

多个文档可以组成集合,多个集合组成数据库

4.服务器(server)

一个服务器里面可以存放多个数据库

4.2基本操作

1.查看有多少数据库以及数据库大小

show dbs/show databases

2.进入指定数据库

use 数据库名

3.显示当前数据库

db(一旦进入数据库,db就是当前数据库)

4.显示当前数据库中所有集合

show collections

5.显示当前集合中所有文档

db.getCollection('collection').find() / db.collection.find()

4.3数据库CRUD(增删改查)操作

PS:下文所有collection均表示当前的集合名

1.插入文档

  • 向集合中插入一个或多个文档
(1)db.getCollection('collection').insert(doc) / db.collection.insert(doc)

(2)插入一个:例:db.getCollection('ST20').insert({name:"CHEN",age:20}) / db.ST20.insert({name:"CHEN",age:20})

(3)插入多个(传一个数组),例:db.getCollection('ST20').insert([{name:"CHEN",age:20},{name:"MA",age:20}]) / db.ST20.insert([{name:"CHEN",age:20},{name:"MA",age:20}])
  • 插入一个文档
(1)db.collection.insertOne()
  • 插入多个文档

(1)db.collection.insertMany(),表示只能传数组

PS:当我们向集合中插入文档时,数据库会给我们自动添加"_id"属性,该属性用来标识文档 的唯一性,当然,“_id”的值也可以自己设定,但是文档缺少了唯一性

2.查询文档

  • 查询所有文档

(1)db.getCollection('collection').find() / db.collection.find()

(2)如果不想看到匹配文档的所有属性,而只想看到某一属性,则就添加第二个参数,里面传入属性名

db.collection.find({} , {属性名 : 1})

PS:find()返回的是一个数组,要取元素,可以在后面加上索引,如db.collection.find()[0]

  • 查询特定属性(字段)值的文档
(1)db.collection.find({属性:"值"})

(2)例:db.ST20.find({name:"CHEN"})

(3)如果是多个属性条件,可以这么写:db.ST20.find({name:"CHEN",age:20})

查询符合条件的第一个文档
(1)db.collection.findOne({age:20})

PS:findOne返回的就是一个对象,不是数组

  • 查询所有结果数目

db.collection.find().count() / db.collection.find().length()

  • 查询内嵌文档(属性值是一个文档

(1)db.collection.find({"属性.属性":值})(PS:这里属性一定要加双引号

  • 更多操作符见练习

3.修改文档

  • 修改符合条件的单个文档

1)db.collection.updateOne({查询条件},{修改属性})

(2)例:把CHEN的年龄改成21

db.ST20.updateOne({name:"CHEN"},{age:21})

PS:update会被整个对象替换,如果只想修改指定属性值,保留其余属性值,那么需要修改操作符

修改操作符

$set:修改文档中指定属性

$unset:删除文档指定属性

db.collection.updateOne({查询条件},{$set:{修改条件}})

例:把CHEN的年龄改成21

db.ST20.updateOne({name:"CHEN"},{$set:{age:21}})

PS:如果没有age属性,则会自动添加age属性

修改多个符合条件的文档
(1)db.collection.updateMany({查询条件},{修改属性})

替换一个符合条件的文档
(1)db.collection.replaceOne()

向数组中添加新的值(数组:就是说原来的属性值是多个元素组成的数组,而不是只有单个元素,如字符串或者整数)
(1)$push(不考虑重复) / $addToSet(考虑重复)

(2)例子:db.collection.update({name:"CHEN"},{$push:{age:22}})

4.删除文档

删除单个或多个符合条件的文档
(1)db.collection.remove({属性值})

(2)第二个参数传入true就表示删除一个:db.collection.remove({属性值},true)

删除单个符合条件的文档
(1)db.collection.delectOne()

删除多个符合条件的文档
(1)db.collection.delectMany()

删除所有文档
(1)db.collection.remove({})(慢)

(2)删除所有文档相当于删除集合:db.collection.drop()(快)

删除数据库,然后跑路
(1)db.dropDatabase()

5.练习

(1)向集合numbers中插入20000条数据

for(var i = 1 ; i <= 20000 ; i ++){

db.numbers.insert({num:i});

} (慢,一条一条插入)



var arr = []

for(var i = 1 ; i <= 20000 ; i ++){

arr.push({num:i});

}

db.numbers.insert(arr); (快)

(2)查询numbers中num大于5000的文档(比较查询操作符

db.numbers.find({num:{$gt:500}})

(3)查询numbers中num大于等于5000的文档(比较查询操作符

db.numbers.find({num:{$gte:500}})

PS:$eq等于 $lt小于 $lte小于等于 $ne不等于

(4)查询num在400到500之内的

db.numbers.find({num:{$in:[400,500]}}) / db.numbers.find({num:{$gt:400 , $lt:500}})

(5)查询num在400到500之外的

db.numbers.find({num : {$nin : [400,500]}}) / db.numbers.find({num : {$lt:400 , $gt : 500}})

(6)查询numbers集合中前10条数据

db.numbers.find().limit(10)

(7)查询numbers集合中第11条到第20条数据数据

db.numbers.find().skip(10).limit(10)

skip()用来跳过指定数量的查询

(8)查询num在小于400或者大于500的

db.numbers.find({$or : [{num : {$lt : 400}} , {num : {$gt:500}}]})

(9)为num小于400的加上100

db.numbers.updateMany({num : {$lt : 400} , {$inc : {num : 400}}})

(10)对num进行排序

db.numbers.find().sort({num : 1})

PS:1表示升序,-1表示降序

(11)对num进行升序,nums进行降序

db.numbers.find().sort({num : 1 , nums : -1})

如果对你有帮助 那就点个赞吧

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年PTA行业研究报告

第一章 行业概况 精对苯二甲酸&#xff08;Pure Terephthalic Acid&#xff0c;简称PTA&#xff09;是一种主要用于制造聚酯纤维和塑料的关键化学品。PTA是一种白色结晶固体&#xff0c;可通过对苯二酮在催化剂的作用下进行氧化得到。它是聚对苯二甲酸乙二醇酯&#xff08;PET…

机器视觉三维重建

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D开发工具链。 1、Meshroom ⭐4,474 Meshroom是一款基于AliceVision摄影测量计算机视觉框架的免费开源三维重建软件。 https://github.com/alicevision/meshroom 2、Openmvg ⭐2,829 Openmvg库根据三维计算机视觉和结构的运动。…

Web3 通过truffle 脚本进行智能合约测试

上文 Web3 处理智能合约部署到本地区块链&#xff0c;并在本地进行测试中 我们讲解了部署智能合约 然后在终端测试的方法 但上文那种终端测试 其实并不保险 而且也比较不专业 对于这个 有一个mocha测试 这是基于node部署环境的一种环境测试 但是这个需要一定的基础 大家可以专门…

国产BI工具和国外BI工具,差距大不大,用哪种比较好?

自“十四五”以来&#xff0c;我国诸多政策开始推动信创产业的深入&#xff0c;实现关键数字技术自主研发和自主可控。我国信创产业竞争力不断突破&#xff0c;国产化进程稳步推进。2022年开始政策重点提及“数字经济”、“数字政府”和国家信息化。在此背景下&#xff0c;BI产…

el-date-picker 的初始化数据格式理解、报错 “TypeError: date.getFullYear is not a function“

个人理解 如果后端传给前端的时间数据是字符串类型的&#xff0c;那么当触发 el-date-picker 组件时&#xff0c;就会报出很多错误&#xff0c;例如 这是由于初始化赋值格式的问题&#xff0c;需要对初始化值&#xff0c;进行一个 new Date(your_time_data) 前端演示模板&…

虚拟机快速克隆的步骤

目录 1、关于让应用的快捷方式出现在开始栏的方法2、使用VMware快速克隆2-12-22-32-42-5 克隆虚拟机命名 1、关于让应用的快捷方式出现在开始栏的方法 把应用的快捷方式&#xff0c;放到这个目录中 C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs2、…

uniapp app分享pdf等文件等到微信以及其他应用

uniapp自带的api uni.share只能分享图文等&#xff0c;但不能分享pdf这种之类的 想实现分享文件这种就要调用系统的分享功能 分享插件地址 这个插件完美解决&#xff0c;安卓分享到微信也不需要配置appid 封装用法 /*** 任意文件分享,需勾选云插件并云打包* 安卓调用系统分享无…

DFS解决N-皇后问题

题目&#xff1a; n−皇后问题是指将 n个皇后放在 nn的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 n&#xff0c;请你输出所有的满足条件的棋子摆法。 输入格式 共一行&#xff0c;包…

《IntelliJ IDEA 2023最新版快捷键大全GIF动图演示》——提升你的开发效率

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

用css来实现上下左右箭头

i {/* 用border值来控制箭头粗细 */border: 3px solid black;/* 上、右、下、左 四个边框的宽度 */border-width: 0px 1px 1px 0px;display: inline-block;/* padding值控制箭头大小 */padding: 5px; } ____________________________________.right {transform: rotate(-45deg…

浮动——案例

案例1——做出如下图的框架 提示&#xff1a;用ul li来完成 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sc…

KnowStreaming系列教程第一篇——安装和使用

KnowStreaming介绍 Know Streaming是一套云原生的Kafka管控平台&#xff0c;脱胎于众多互联网内部多年的Kafka运营实践经验&#xff0c;专注于Kafka运维管控、监控告警、资源治理、多活容灾等核心场景。在用户体验、监控、运维管控上进行了平台化、可视化、智能化的建设&#…

一份保姆级的Stable Diffusion部署教程,开启你的炼丹之路 | 京东云技术团队

市面上有很多可以被用于AI绘画的应用&#xff0c;例如DALL-E、Midjourney、NovelAI等&#xff0c;他们的大部分都依托云端服务器运行&#xff0c;一部分还需要支付会员费用来购买更多出图的额度。在2022年8月&#xff0c;一款叫做Stable Diffusion的应用&#xff0c;通过算法迭…

利用css实现渐变色(通俗易懂)

利用css实现渐变色 0、前言1、线性渐变2、径向渐变2.1 径向渐变2.1.1 圆形2.1.2 椭圆形 2.2 重复性径向渐变 3、边框颜色渐变3.1 边框渐变3.1.1 线性渐变3.1.2 径向渐变 3.2 单侧边框渐变3.2.1 底部边框线性渐变3.2.2 右侧边框线性渐变 4、扩展&#xff08;CSS线性渐变颜色网站…

vscode离线安装插件提示版本不兼容,安装失败的处理方法

因为公司是内网&#xff0c;无法在线下载插件&#xff0c;只能通过离线下载的方式安装插件&#xff0c;但是提示版本不兼容&#xff0c;安装失败&#xff0c;后面解决了&#xff0c;记录一下处理方法。 1. 首先查看vscode版本号 2. 将.vsix文件压缩 然后打开压缩文件&#x…

Lesson3-2:OpenCV图像处理---形态学操作

形态学操作 学习目标 理解图像的邻域&#xff0c;连通性 了解不同的形态学操作&#xff1a;腐蚀&#xff0c;膨胀&#xff0c;开闭运算&#xff0c;礼帽和黑帽等&#xff0c;及其不同操作之间的关系 1 连通性 在图像中&#xff0c;最小的单位是像素&#xff0c;每个像素周围…

springboot dubbo seata nacos集成 分布式事务seata实现

文章目录 Seata介绍dubbo介绍目标版本说明和代码地址pom.xml验证模块microservice-boot-commonmicroservice-boot- plat 验证结果注意事项 Seata介绍 官网&#xff1a;http://seata.io/zh-cn/docs/overview/what-is-seata.html Seata 是一款开源的分布式事务解决方案&#xff…

从零开始 Spring Boot 63:Hibernate 继承映射

从零开始 Spring Boot 63&#xff1a;Hibernate 继承映射 图源&#xff1a;简书 (jianshu.com) 关系型数据库设计中是不存在继承概念的&#xff0c;但实体类可以用继承来组织代码结构&#xff0c;所以需要用一种方式将实体类的继承结构映射到表结构。 本文将介绍几种在 JPA&a…

LCD1602显示屏只亮不显示字符

代码能在普中的板子能正常显示&#xff0c;但是换了块板子就不行&#xff1a; 调节显示屏下方的可调电阻 在调试中找到自己适合的值&#xff0c;就可以看见字符了

5、加载3dtileset模型并定位到模型

这一节使用CCesium加载3dtiles模型&#xff0c;3dtiles模型使用ceisum官网示例中的模型&#xff0c;加载3dtiles功能目前只能添加没有压缩的模型&#xff0c;draco或其他解压缩功能没有写。 1、在上一个例子的基础上&#xff0c;将鼠标事件改成右键的鼠标事件Cesium::ScreenSp…