当前位置: 首页 > news >正文

mongoDB基本命令操作

文章目录

  • 1. 安装
    • (1). 启动mongodb
    • (2). 数据库连接
  • 2. 基本命令
    • (1) 数据库操作
    • (2) 集合操作
    • (3) 文档操作
      • 1) 简单查询
      • 2) 条件查询
      • 3) 投影查询
      • 4) 文档更新
      • 5) 列值增长修改
      • 6) 删除文档
      • 7) 分页查询
      • 8) 排序查询
      • 9) 正则查询(模糊查询)
      • 10) 比较查询
      • 11) 包含查询
  • 3. 索引
    • (1) 执行计划

1. 安装

官网:https://www.mongodb.com/try/download/community

(1). 启动mongodb

# 命令行加参数
mongod  --dbpath=..\data\db# 命令行加配置文件,需要先编写配置文件
mongod -f ..\conf\mongod.conf

(2). 数据库连接

# 默认链接本地27017端口
mongo
# 指定连接mongo --host=127.0.0.1 --port=27017

2. 基本命令

(1) 数据库操作

#  查看所有数据库
show dbs  或者 show database# 创建使用数据库,存在使用不存在创建使用
use dbName#  当前数据
db#  删除数据库
db.dropDatabse()

(2) 集合操作

#  集合创建db.createCollection("set1")#  集合查看show collections
#  删除集合
db.集合名称.drop()

(3) 文档操作

#  单文档插入(json格式插入),如果集合不存在会自动创建
db.set1.insert({"id":1,"name":"zhangsan","age":23})
#  多文档插入
db.set1.insertMany([{"id":1,"name":"zhangsan","age":23},{"id":2,"name":"lisi","age":24}])

1) 简单查询

#  查询 
db.集合名称.find()
# 查询一条数据
db.集合名称.findOne()

2) 条件查询

#  根据条件查询(json格式指定条件,如{"id":1})
db.集合名称.find("条件")# 多条件(与或)
db.集合名称.find({$and[{"条件集合"}]})
db.集合名称.find({$or[{"条件集合"}]})

3) 投影查询

投影: 选择列

db.集合名称.find({查询条件},{投影条件})
例如:  db.set1.findOne({},{"name":1})

4) 文档更新

#  全局更新,使用更新内容替换原来的文档(默认为第一个)
db.集合名.update({条件},{更新内容})#  局部更新(只会修改指定字段)
db.集合名称.update({条件},{$set:{更新内容}})
例如:  db.set1.update({"name":"wangwu"},{$set:{"age":18}})# 批量修改(上面语句默认修改一条) 使用updateMany命令
db.set1.updateMany({"name":"wangwu"},{$set:{"age":18}})

5) 列值增长修改

#  使用$inc函数为增加
db.集合名称.update({条件}{$inc:{"增加字段":增加值}})

6) 删除文档

#  会删除条件匹配的所有数据
db.集合名称.remove({条件})
#  删除集合中全部数据
db.集合名称.remove()

7) 分页查询

# 统计,不带条件统计所有
db.集合名称.count({查询条件})#  查询前2条记录
db.集合名称.find().limit(2)
# 跳过前2条数据
db.集合名称.find().limit(2)# 分页查询(配合skip和limit)
db.集合名称.find().limit(2).skip(3)

8) 排序查询

# 1为降序,-1为升序
db.集合名称.find().sort({排序字段:1})

9) 正则查询(模糊查询)

db.集合名称.find({查询条件:/正则/})

10) 比较查询

db.集合名称.find({"字段":{$指令:值}})
/*
指令: >			gt<			lt>= 			gte<=			lte!=			ne
*/

11) 包含查询

db.集合名称.find({"字段":{$in:["匹配集合"]}})

3. 索引

索引: 通过特定数据结构,提高查询效率(B树)

查看索引:

# 查询集合中所有索引
db.集合名称.getIndexs()
/*
[ { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } ]
v :  		索引版本
key: 		索引字段_id:	升序(-1降序)
name: 		索引名称
*/

创建索引:

db.集合名称.createIndex(keys,[options])
例如: db.set1.createIndex({"id":1})
/*
kyes: 为给哪些key创建索引options(常用): unique: 唯一索引name: 	索引名称
*/

删除索引:

db.集合名称.dropIndex({指定名称或者条件})
例如: db.set1.dropIndex({"id":1})# 删除所有索引
db.集合名称.dropIndexes()

(1) 执行计划

相当于mysql的: explain

db.集合名称.find().explain()

相关文章:

mongoDB基本命令操作

文章目录 1. 安装(1). 启动mongodb(2). 数据库连接 2. 基本命令(1) 数据库操作(2) 集合操作(3) 文档操作1) 简单查询2) 条件查询3) 投影查询4) 文档更新5) 列值增长修改6) 删除文档7) 分页查询8) 排序查询9) 正则查询(模糊查询)10) 比较查询11) 包含查询 3. 索引(1) 执行计划 1…...

MySQL索引,事务

一.MySQL索引介绍 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。在数据十分大的时候&#xff0c;索引可以大大加快查询的速度。这是因为使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引表找到该行数…...

嵌入式软件面试记录(5)

1.FreeRTOS使用&#xff0c;是自己移植的吗&#xff0c;移植过程中设置了多少个任务&#xff1f; 答&#xff1a;是自己移植的&#xff0c;从官网下载的包根据手册移植的。 主要涉及以下几个任务&#xff1a; 主任务&#xff1a;负责系统初始化和创建其他任务。创建队列任务点…...

Linux-笔记 OverlayFS文件系统入门

目录 前言 主要概念 工作原理 特点特性 1、上下合并 2、同名文件覆盖 3、同名目录合并 4、写时拷贝 实操入门 内核配置 挂载文件系统 验证 1、同名文件覆盖 2、同名目录合并 3、写时拷贝 1&#xff09;验证新增文件或目录 2&#xff09;验证修改文件 3&…...

Kubernetes面试整理-如何配置和使用Service, Ingress?

在 Kubernetes 中,Service 和 Ingress 是用于管理和暴露应用程序的网络访问的主要资源。以下是如何配置和使用 Service 和 Ingress 的详细指南: Service Service 是一种抽象,用于定义一组 Pod 的逻辑集合,并提供一种访问这些 Pod 的策略。Service 可以使应用程序内部或外部…...

深入浅出:NPM常用命令详解与实践

深入浅出地讲解npm常用命令及其实践&#xff0c;可以帮助开发者更好地理解和使用这个强大的Node.js 包管理工具。以下是一些常用的npm命令及其详细解释和实践案例&#xff1a; 1&#xff1a;初始化项目&#xff1a; 命令&#xff1a;npm init用途&#xff1a;生成一个package…...

IPv6 address status lifetime

IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置&#xff0c;该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…...

OpenVINO部署

OpenVINO部署 什么是 OpenVINO&#xff1f;OpenVINO 的优势安装指南系统要求&#xff1a;安装步骤 环境设置部署示例代码优化和部署步骤详细部署示例 什么是 OpenVINO&#xff1f; OpenVINO&#xff08;Open Visual Inference and Neural Network Optimization&#xff09;是由…...

面试题:MySQL优化,项目中举例

目录 一、SQL优化分两部分&#xff0c;如何发现慢SQL和如何优化慢SQL 二、项目举例 一、SQL优化分两部分&#xff0c;如何发现慢SQL和如何优化慢SQL 发现慢SQL有两种方案&#xff1a;第一种是开启我们的慢日志&#xff0c; 第二种就是使用skywalling发现慢的接口&#xff0c;进…...

Spring Boot中的事件驱动编程

Spring Boot中的事件驱动编程 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨在Spring Boot应用中如何利用事件驱动编程模式&#xff0c;实现…...

代码随想录算法训练营第五十天| 1143.最长公共子序列、1035.不相交的线、53. 最大子序和、392.判断子序列

LeetCode 1143.最长公共子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/description/ 文章链接&#xff1a;https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路 * dp[i][j]…...

【Redis】数据持久化

https://www.bilibili.com/video/BV1cr4y1671t?p96 https://blog.csdn.net/weixin_54232666/article/details/128821360 单点redis问题&#xff1a; 数据丢失问题&#xff1a;实现Redis数据持久化并发能力问题&#xff1a;搭建主从集群&#xff0c;实现读写分离故障恢复问题&…...

基于Python+Flask+MySQL+HTML的B站数据可视化分析系统

FlaskMySQLVue 基于PythonFlaskMySQLHTML的B站数据可视化分析系统 项目采用前后端分离技术&#xff0c;项目包含完整的前端HTML&#xff0c;以及Flask构成完整的前后端分离系统 爬虫文件基于selenium&#xff0c;需要配合登录账号 简介 主页 登录页面&#xff0c;用户打开浏…...

桥接模式

对象的继承关系是在编译时就定义好了&#xff0c;所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系&#xff0c;以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时&#xff0c;如果继承下来的实现不适合解决新的问题&…...

docker中mysql突然无法远程连接设置

docker登陆到docker.hub docker login -u 用户名 回车密码 将容器打包成自己的镜像 docker commit -a "用户名" -m "redis" 533d6f1402ca 用户名/myredis:v1.2 将镜像发布到平台上 docker push用户名/myredis:v1.2 删除本地镜像 docker rm image …...

Nuxt3 的生命周期和钩子函数(二)

title: Nuxt3 的生命周期和钩子函数&#xff08;二&#xff09; date: 2024/6/26 updated: 2024/6/26 author: cmdragon excerpt: 摘要&#xff1a;本文深入介绍了Nuxt.js框架中几个关键的生命周期钩子函数&#xff0c;包括app:redirected&#xff08;SSR环境下重定向前触发…...

用英文介绍孟买:Mumbai India‘s Transforming MEGACITY

Mumbai: India’s Transforming MEGACITY Link: https://www.youtube.com/watch?vtWD_-Rzrn8o Summary First Paragraph: Mumbai, India’s financial and entertainment capital, is undergoing a major transformation. With its contiguous urban population nearing 25…...

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送...

vscode + CMake编译(opencv显示图片工程)

1.opencv 1.1Mat容器&#xff1a; 在OpenCV中&#xff0c;cv::Mat是一个重要的类&#xff0c;用于表示和操作矩阵或多维数组&#xff0c;通常用于图像处理和计算机视觉任务。 cv::Mat类具有以下特点和功能&#xff1a; 多维数据存储&#xff1a;cv::Mat可以存储多维数据&…...

JavaScript的学习之强制类型转换

目录 一、什么是强制类型转换 二、其他类型转化为String类型 方式一&#xff1a;调用被转化数据类型的toString()方法 方式二&#xff1a;调用String函数&#xff0c;并将我们要转换的数据添加进去为参数 三、其他类型转化为Number类型 方式一&#xff1a;使用Number()函数…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...