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.离散数据采样的意义 离散数据采样在深度学习中起着至关重要的作用,它直接影响到模型的性能、泛化能力、训练效率、鲁棒性和解释性。 首先,采样方法能够有效地平衡数据集中不同类别的样本数量,使得模型在训练时能够更均衡地学习…...
.NET+Python量化【1】——环境部署和个人资金账户信息查询
前言:量化资料很少,.NET更少。那我就来开个先河吧~ 以下是使用QMT进行量化开发的环境部署和基础信息获取有关操作。 1、首先自己申请券商的QMT权限,此步骤省略。 2、登陆QMT,选择极简模式,或者独立交易模式之类的。会进…...
洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)
题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解,第一篇能得出这个式子,第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238,基本就能得出这题的正确做法 代码 #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链接 首先,打开百度图片首页,注意下图url中的index 接着,把页面切换成传统翻页版(flip),因为这样有利于我们爬取图片! 对比了几个url发现,pn参数是请求到的数量。…...
使用 JavaScript 获取电池状态
在现代的移动设备和笔记本电脑上,了解电池状态是一项非常有用的功能。使用 JavaScript 可以轻松地获取电池的充电状态、电量百分比等信息。本文将介绍如何使用 JavaScript 访问这些信息,并将其显示在网页上。 1. HTML 结构 首先,我们需要一…...
java—类反射机制
简述 反射机制允许程序在执行期间借助于Reflection API取得任何类的内部信息(如成员变量,构造器,成员方法等),并能操作对象的属性及方法。反射机制在设计模式和框架底层都能用到。 类一旦加载,在堆中会产生…...
浏览器-服务器架构 (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启动任务
系列一:微型操作系统内核源码详解系列一:rtos内核源码概论篇(以freertos为例)-CSDN博客 系列二:微型操作系统内核源码详解系列二:数据结构和对象篇(以freertos为例)-CSDN博客 系列…...
筛质数(暴力法、埃氏筛、欧拉筛)
筛质数(暴力法、埃氏筛、欧拉筛) 暴力法 思路分析: 直接双for循环来求解质数 如果不设置标记只是简单地执行了break会导致内部循环(由j控制)而不是立即打印i或者跳过它。如果打印语句写到内部循环中,也会导致每个 非素数也被打…...
使用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." 是一档双周播客节目,由长期担任《纽约时报》记者的 Craig S. Smith 主持。在每一集中,Craig 都会与在人工智能领域产生影响的人们交谈。该播客的目的是将渐进的进步置于更广阔的背景中,并考虑发展中的技术的全球影响…...
Flink 窗口触发器
参考: 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 中,线程间的通信可以通过 wait()、notify() 和 notifyAll() 这三个方法实现。这些方法是 Java 线程 Thread 类的一部分,它们与 synchronized 关键字一起使用,以实现线程间的协调。 基本概念 wait():当一个线程执行到 wa…...
【机器学习 复习】第9章 降维算法——PCA降维
一、概念 1.PCA (1)主成分分析(Principal ComponentAnalysis,PCA)一种经典的线性降维分析算法。 (2)原理,这里以二维转一维为例,原来的平面变成了一条直线 这是三维变二…...
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))点的切线,我们可以在曲线上找到与之相近的一点 Q ( x , f ( x ) ) Q(x, f(x)) Q(x,f(x)),然后求出割线 P Q PQ PQ的斜率: m P Q f ( x ) − f ( a ) x − a m_{PQ} \…...
最新PHP仿猪八戒任务威客网整站源码/在线接任务网站源码
资源介绍 老规矩,截图为亲测,前后台显示正常,细节功能未测,有兴趣的自己下载。 PHP仿猪八戒整站源码下载,phpmysql环境。威客开源建站系统,其主要交易对象是以用户为主的技能、经验、时间和智慧型商品。经…...
Windows安装配置jdk和maven
他妈的远程连接不上公司电脑,只能在家重新配置一遍,在此记录一下后端环境全部配置 Windows安装配置JDK 1.8一、下载 JDK 1.8二、配置环境变量三、验证安装 Windows安装配置Maven 3.8.8一、下载安装 Maven并配置环境变量二、设置仓库镜像及本地仓库三、测…...
电子SOP实施(MQTT协议)
架构图 服务与程序 用docker启动mqtt broker(服务器) 访问:http://192.168.88.173:18083/#/dashboard/overview 用户名:admin 密码:*** 消息发布者(查找sop的url地址,发布出去) 修改url,重新发布消息 import ran…...
【Unity导航系统】Navigation组件的概念及其使用示例
Unity中的NavMeshObstacle组件是一个用于动态障碍物的组件,它可以实时地影响导航网格(NavMesh)。当游戏对象附加了NavMeshObstacle组件时,它可以在AI进行路径规划时被识别为障碍物,从而让AI避开这些动态变化的障碍。 …...
vue-cli 根据文字生成pdf格式文件 jsPDF
1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件,反正调一个需要的ttf字体文件就行,但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址: FontsMarket.com - Download Microsoft YaHei …...
【嵌入式DIY实例】-Nokia 5110显示DS3231 RTC数据
Nokia 5110显示DS3231 RTC数据 文章目录 Nokia 5110显示DS3231 RTC数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS3231 RTC 模块制作一个简单的数字实时时钟,其中可以使用连接到 NodeMCU 的两个按钮设置时间和日期,并将它们打印在诺基亚 5110 …...
【十三】图解mybatis缓存模块之装饰器模式
图解mybatis缓存模块之装饰器模式 简介 之前有写过一篇博客介绍过mybatis的缓存模块设计【九】mybatis 缓存模块设计-CSDN博客 ,当时着重讲解的是mybatis种一级缓存和二级缓存,本次博客补充讲解一下装饰器模式的应用,本篇主要分两部分讲解&a…...
字节大神强推千页PDF学习笔记,弱化学历问题,已拿意向书字节提前批移动端!
主要问java,以及虚拟机,问了一点android 1.实习项目有关的介绍以及问题回答 2.反射与代理的区别,动态代理,静态代理,二者的区别,以及代理模式的UML图 3.字节码技术 4.虚拟机的双亲委派,以及好…...
Python爬虫-贝壳二手房“改进版”
前言 本文是该专栏的第31篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前的文章《Python爬虫-贝壳二手房》中,笔者有详细介绍,基于python爬虫采集对应城市的二手房数据。 而在本文,笔者将基于该项目案例的基础上,进行一个项目代码的“改进版”。 具体实…...
zookeeper学习、配置文件参数详解
zookeeper学习、配置文件参数详解 zookeeper 配置文件参数详解tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系initLimit,syncLimit什么区别minSessionTimeout 默认值,**他的单位是ms** zookeeper 配置文件参数详解 ZooKeeper 是一个分布式协调服…...
SVG 模糊效果
SVG 模糊效果 SVG(Scalable Vector Graphics,可缩放矢量图形)是一种基于XML的图像格式,用于描述二维图形。它是一种矢量图形格式,因此可以无限放大而不失真。SVG广泛应用于网页设计、动画制作和图形编辑等领域。本文将介绍SVG中一种特殊的效果——模糊效果,以及如何使用…...
注册科技有限公司可以做网站吗/百度收录入口在哪里查询
题目文件:https://files.cnblogs.com/files/nul1/access.log.tar 直接搜索flag发现是一题关于二分法注入。 页面为200的字节大小为1765,所以可以通过读取每行判断是否有1765以及有没有flag的关键字样,进而提取值。 脚本如下所示: …...
网站建设公司怎样/搜索引擎排名竞价
将开发过程中比较重要的代码做个收藏,下面资料是关于C# GUID转换成16位字符串或19位数字并确保唯一的代码,应该能对各位朋友有好处。 public static string GuidTo16String() { long i 1; foreach (byte b in Guid.NewGuid().ToByteArray()) retur…...
个人如何做问答类网站/在线种子资源库
分治6--循环比赛日程表 一、心得 递推方程式想清楚 二、题目及分析 问题描述: 设有n2^k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能参赛一次&#x…...
南通网站建设开发/成都seo学徒
postman搭建mock api server,有个比较蛋疼的缺点,就是如果你输入的请求参数没有设置过,那么会默认返回第一个设置Examples的结果 具体步骤如下: 转载于:https://www.cnblogs.com/ai594ai/p/10796114.html...
网站是数据/品牌推广的概念
【踩坑】win10迁移系统到移动硬盘, 换系统盘,无法启动等问题仅迁移用移动硬盘中转迁移并移除原系统盘踩坑心得1. 准备工作要做好2. 不要轻易删除原系统盘的引导分区efi, 除非你必须要更换原来的硬盘3. 新硬盘的格式要先修改, 再迁移4. 要设置好esp分区和重新设置引导续找不到U盘…...
网站开发进度源码/岳阳网站建设推广
linux操作系统课程设计报告操作系统II(实践)期末作业(Linux Shell 程序设计)学院:专业:班级:学号:姓名:2011年6月3日所用仪器、材料。PC一台Redhat linux 5.5二、实验内容:有文本文件student.txt,该文件是所…...