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

Mongodb数据库基本操作

本文为在命令行模式下Mongodb数据库的基本操作整理。

目录

数据库操作

创建数据库

查看所有数据

查看当前数据库

删除数据库

断开连接

查看命令api

集合操作

查看当前数据库下集合

创建集合

删除当前数据库中的集合

文档操作

插入文档

insertOne()方法

insertMany()方法

文档更新

updateOne()方法

updateMany()方法

文档删除

remove()方法

文档查询

find()方法

pretty()方法

findOne()方法

查询条件操作符

大于 $gt

大于等于 $gte

小于$lt

小于等于 $lte

大于等于和小于等于 $gte 和 $lte

等于

使用 id进行查询

查询结果条数

查询是否包含

查询某开头

条件査询and 和 or

AND条件

OR条件

AND和OR联合使用

limit、 skip

limit()

skip()

skip与1imit联合使用

排序

总结


数据库操作

创建数据库

语法:use 数据库名

注意:

如果数据库不存在则创建数据库,否则切换到指定的数据库

如果刚刚创建的数据库不在列表内,如果要显示它,需要向刚刚创建的数据库中插入一些数据。

db.student.insertOne({name:"tom",age:18,gender:1,address:"北京",isDelete:0})

 

查看所有数据

show dbs

查看当前数据库

1.db2.db.getName()

 

删除数据库

前提:使用当前数据库(use 数据库名)

db.dropDatabse()

 

断开连接

exit

 

查看命令api

help

集合操作

查看当前数据库下集合

show collections

创建集合

语法:db.createCollection("集合名")

示例:

db.createCollection("class")

创建的是一个空的集合

删除当前数据库中的集合

语法:db.集合名.drop()

示例:

db.class.drop()

文档操作

插入文档

insertOne()方法

新增单个文档

语法:db.集合名.insertOne(文档)

示例:

db.student.insertOne({name:"lilei",age:19,gender:1,address:"北京",isDelete:0})

insertMany()方法

新增多个文档

语法:db.集合名.insertMany(文档)

示例:

db.student.insertMany({name:"海妹妹",age:17,gender:0,address:"北京",isDelete:0},{name:"韩梅梅",age:20,gender:0,address:"上海",isDelete:0})

文档更新

updateOne()方法

用于更新已存在的文档,只修改符合记录的第一条。

语法:db.集合名.updateOne(<query>,<update>,{

        upset:<boolean>,

        multi:<boolean>,

        writeconcern:<document>

})

参数说明:

query:update的查询条件,类似于sql里update语句内where后面的内容

update:

update的对象和一些更新的操作符($set,$inc)等,

$set直接更新,$inc在原来的基础上累加后更新

Upset:可选,mongodb默认是false,只更新找到的第一条记录;

如果这个参数为true,就按照条件查找出来的数据全部更新。

WriteConcern:可选,抛出异常的级别

需求:将1ilei的年龄更新为25

db.student.updateOne({name:"lilei"},{$set:{age:25}})

需求:将lilei的年龄更新为25

示例:

db.student.updateOne({name:"lilei"}{$set:{age:25}})

累加:

db.student.updateOne({name:"lilei"},{$inc:{age:25}})

 

updateMany()方法

用于更新已存在的文档,修改符合记录的所有记录。

参数与updateOne()方法相同。

文档删除

remove()方法

说明:在执行remove()函数前,先执行find()命令来判断执行的条件是否存在

语法:db.集合名.remove(query,{

        justOne:<boolean>,

        writeconcern:<document>

})

参数说明:

query:可选,删除的文档的条件

justone:可选,如果为true或1,则只删除一个文档

writeconcern:可选,抛出异常的级别

示例:

db.student.remove({name:"zhangsan"})

deleteOne()方法

说明:从集合中删除一个单独的文档,

语法:db.集合名.deleteOne(filter, {

        writeConcern: <document>,

        collation: <document>,

        hint: <document|string>

})

参数说明:

filter:使用查询运算符指定删除条件。

指定一个空文档{}以删除集合中返回的第一个文档。

writeconcern:可选,抛出异常的级别.

collation:可选,排序规则

hint:可选,用于指定支持查询谓词的索引的文档或字符串。

示例:

db.student.deleteOne({name:"zhangsan"})

deleteMany()方法

说明:从集合中删除多个文档。

语法:db.集合名.deleteMany(filter, {

        writeConcern: <document>,

        collation: <document>,

})

参数说明:

filter:使用查询运算符指定删除条件。

指定一个空文档{}以删除集合中返回的第一个文档。

writeconcern:可选,抛出异常的级别.

collation:可选,排序规则

示例:

db.student.deleteMany({name:"zhangsan"})

文档查询

find()方法

查询所有数据

语法:db.集合名.find()

查询集合下所有的文档(数据):

db.student.find()

查询指定列

语法:db.集合名.find(query,{

        <key>:1,

        <key>:1

})

参数说明:

query:查询条件

key:要显示的字段,1表示显示

示例:

db.student.find({gender:0},{name:1,age:1})db.student.find({},{name:1,age:1})

pretty()方法

以格式化的方式来显示文档

示例:

db.student.find().pretty()

findOne()方法

查询匹配结果的第一条数据

示例:

db.student.findOne({gender:0})

查询条件操作符

作用:条件操作符用于比较两个表达式并从Mongodb集合中获取数据

大于 $gt

语法:db.集合名.find({<key>:{$gt:<value>}})

示例:

db.student.find({age:{$gt:20}})

 

大于等于 $gte

语法:db.集合名.find({<key>:{$gte:<value>}})

小于$lt

语法:db.集合名.find({<key>:{$lt:<value>}})

小于等于 $lte

语法:db.集合名.find({<key>:{$lte:<value>}})

大于等于和小于等于 $gte 和 $lte

语法:db.集合名.find({<key>:{$gte:<value>,$lte:<value>}})

等于

语法:db.集合名.find({<key>:<value>})

 

使用 id进行查询

语法: db.student.find({" id":objectId("id值")})

示例:

db.student.find({" id":objectId("5995084b019723fe2a0d8d14")})

 

查询结果条数

查询某个结果集的数据条数

db.student.find().count()

 

查询是否包含

查询某个字段的值当中是否包含另一个值

示例:

db.student.find({name:/ile/})

 

查询某开头

查询某个字段的值是否以另一个值开头

示例:

db.student.find({name:/^li/})

条件査询and 和 or

AND条件

语法:db.集合名.find({条件1,条件2,…,条件n})

示例:

db.student.find({gender:0,age:{$gt:16}})

OR条件

语法:db.集合名.find({

$or:[{条件1},{条件2},…,{条件n}]})

示例:

db.student.find({$or:[{age:17},age:{$gte:20}}]})
AND和OR联合使用

语法:db.集合名.find({条件1,条件2,$or:[条件3},{条件4}]})

limit、 skip

limit()

读取指定数量的数据记录

db.student.insertOne([{name:"妹妹2",age:17,gender:0,address:"北京",isDelete:0},{name:"韩梅梅1",age:20,gender:0,address:"上海",isDelete:0}])db.student.find().limit(2)

skip()

跳过指定数量的数据

db.student.find().skip(3)

skip与1imit联合使用

通常用这种方式来实现分页功能

示例:

db.student.find().skip(3).limitf3)

排序

语法:db.集合名.find().sort({<key>:1|-1})

示例:

db.student.find().sort({age:1})

注意:1表示升序,-1表示降序

总结

本文为在命令行模式下Mongodb数据库的基本操作整理。

相关文章:

Mongodb数据库基本操作

本文为在命令行模式下Mongodb数据库的基本操作整理。 目录 数据库操作 创建数据库 查看所有数据 查看当前数据库 删除数据库 断开连接 查看命令api 集合操作 查看当前数据库下集合 创建集合 删除当前数据库中的集合 文档操作 插入文档 insertOne()方法 insertMa…...

【机器学习】基于Softmax松弛技术的离散数据采样

1.引言 1.1.离散数据采样的意义 离散数据采样在深度学习中起着至关重要的作用&#xff0c;它直接影响到模型的性能、泛化能力、训练效率、鲁棒性和解释性。 首先&#xff0c;采样方法能够有效地平衡数据集中不同类别的样本数量&#xff0c;使得模型在训练时能够更均衡地学习…...

.NET+Python量化【1】——环境部署和个人资金账户信息查询

前言&#xff1a;量化资料很少&#xff0c;.NET更少。那我就来开个先河吧~ 以下是使用QMT进行量化开发的环境部署和基础信息获取有关操作。 1、首先自己申请券商的QMT权限&#xff0c;此步骤省略。 2、登陆QMT&#xff0c;选择极简模式&#xff0c;或者独立交易模式之类的。会进…...

洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解&#xff0c;第一篇能得出这个式子&#xff0c;第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238&#xff0c;基本就能得出这题的正确做法 代码 #include<bits/stdc.h> #include<iostream&g…...

深入讲解C++基础知识(一)

目录 一、基本内置类型1. 类型的作用2. 分类3. 整型3.1 内存描述及查询3.2 布尔类型 —— bool3.3 字符类型 —— char3.4 其他整型 4. 有符号类型和无符号类型5. 浮点型6. 如何选择类型7. 类型转换7.1 自动类型转换7.2 强制类型转换7.3 类型转换总结 8. 类型溢出8.1 注意事项 …...

Python爬虫实战:批量下载网站图片

1.获取图片的url链接 首先&#xff0c;打开百度图片首页&#xff0c;注意下图url中的index 接着&#xff0c;把页面切换成传统翻页版&#xff08;flip&#xff09;&#xff0c;因为这样有利于我们爬取图片&#xff01; 对比了几个url发现&#xff0c;pn参数是请求到的数量。…...

使用 JavaScript 获取电池状态

在现代的移动设备和笔记本电脑上&#xff0c;了解电池状态是一项非常有用的功能。使用 JavaScript 可以轻松地获取电池的充电状态、电量百分比等信息。本文将介绍如何使用 JavaScript 访问这些信息&#xff0c;并将其显示在网页上。 1. HTML 结构 首先&#xff0c;我们需要一…...

java—类反射机制

简述 反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息&#xff08;如成员变量&#xff0c;构造器&#xff0c;成员方法等&#xff09;&#xff0c;并能操作对象的属性及方法。反射机制在设计模式和框架底层都能用到。 类一旦加载&#xff0c;在堆中会产生…...

浏览器-服务器架构 (BS架构) 详解

目录 前言1. BS架构概述1.1 BS架构的定义1.2 BS架构的基本原理 2. BS架构的优势2.1 客户端简化2.2 易于更新和维护2.3 跨平台性强2.4 扩展性高 3. BS架构的劣势3.1 网络依赖性强3.2 安全性问题3.3 用户体验局限 4. BS架构的典型应用场景4.1 企业内部应用4.2 电子商务平台4.3 在…...

微型操作系统内核源码详解系列五(四):cm3下svc启动任务

系列一&#xff1a;微型操作系统内核源码详解系列一&#xff1a;rtos内核源码概论篇&#xff08;以freertos为例&#xff09;-CSDN博客 系列二&#xff1a;微型操作系统内核源码详解系列二&#xff1a;数据结构和对象篇&#xff08;以freertos为例&#xff09;-CSDN博客 系列…...

筛质数(暴力法、埃氏筛、欧拉筛)

筛质数&#xff08;暴力法、埃氏筛、欧拉筛&#xff09; 暴力法 思路分析&#xff1a; 直接双for循环来求解质数 如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中&#xff0c;也会导致每个 非素数也被打…...

使用USI作为主SPI接口

代码; lcd_drive.c //***************************************************************************** // // File........: LCD_driver.c // // Author(s)...: ATMEL Norway // // Target(s)...: ATmega169 // // Compiler....: AVR-GCC 3.3.1; avr-libc 1.0 // // D…...

AI播客下载:Eye on AI(AI深度洞察)

"Eye on A.I." 是一档双周播客节目&#xff0c;由长期担任《纽约时报》记者的 Craig S. Smith 主持。在每一集中&#xff0c;Craig 都会与在人工智能领域产生影响的人们交谈。该播客的目的是将渐进的进步置于更广阔的背景中&#xff0c;并考虑发展中的技术的全球影响…...

Flink 窗口触发器

参考&#xff1a; NoteWarehouse/05_BigData/09_Flink(1).md at main FGL12321/NoteWarehouse GitHub Flink系列 9. 介绍 Flink 窗口触发器、移除器和延迟数据等 | hnbian https://github.com/kinoxyz1/bigdata-learning-notes/blob/master/note/flink/Window%26%E6%97%B6…...

Java面试题:解释线程间如何通过wait、notify和notifyAll方法进行通信

在 Java 中&#xff0c;线程间的通信可以通过 wait()、notify() 和 notifyAll() 这三个方法实现。这些方法是 Java 线程 Thread 类的一部分&#xff0c;它们与 synchronized 关键字一起使用&#xff0c;以实现线程间的协调。 基本概念 wait()&#xff1a;当一个线程执行到 wa…...

【机器学习 复习】第9章 降维算法——PCA降维

一、概念 1.PCA &#xff08;1&#xff09;主成分分析&#xff08;Principal ComponentAnalysis&#xff0c;PCA&#xff09;一种经典的线性降维分析算法。 &#xff08;2&#xff09;原理&#xff0c;这里以二维转一维为例&#xff0c;原来的平面变成了一条直线 这是三维变二…...

Ubuntu系统docker gpu环境搭建

Ubuntu系统dockergpu环境搭建 安装步骤前置安装安装指定版本的依赖包用docker官方脚本安装Docker-ce添加稳定仓库和GPG秘钥更新源 安装docker安装nvidia-docker2重启docker服务阿里云镜像加速 相关命令网络 docker常用命令镜像容器 docker相关问题解决方案使用wsl时docker的容器…...

网络安全-如何设计一个安全的API(安全角度)

目录 API安全概述设计一个安全的API一个基本的API主要代码调用API的一些问题 BasicAuth认证流程主要代码问题 API Key流程主要代码问题 Bearer auth/Token auth流程 Digest Auth流程主要代码问题 JWT Token流程代码问题 Hmac流程主要代码问题 OAuth比较自定义请求签名身份认证&…...

微积分-导数1(导数与变化率)

切线 要求与曲线 C C C相切于 P ( a , f ( a ) ) P(a, f(a)) P(a,f(a))点的切线&#xff0c;我们可以在曲线上找到与之相近的一点 Q ( x , f ( x ) ) Q(x, f(x)) Q(x,f(x))&#xff0c;然后求出割线 P Q PQ PQ的斜率&#xff1a; m P Q f ( x ) − f ( a ) x − a m_{PQ} \…...

最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码

资源介绍 老规矩&#xff0c;截图为亲测&#xff0c;前后台显示正常&#xff0c;细节功能未测&#xff0c;有兴趣的自己下载。 PHP仿猪八戒整站源码下载&#xff0c;phpmysql环境。威客开源建站系统&#xff0c;其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来&#xff0c;实在找不到&#xff0c;希望有大佬教一下我。 还有就会议时间&#xff0c;我感觉不是图片时间&#xff0c;因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

【Linux】Linux安装并配置RabbitMQ

目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的&#xff0c;需要先安…...