自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 MongoDB数据更新中的乘法$mul

mul, 将字段值乘以某个数值。

2024-04-03 14:25:44 554

原创 MongoDB数据更新大之大与小中小

操作符$min,更新指定字段值。当新值小于当前字段值时,更新数据。$min支持不同类型的数据比较。操作符$max,更新指定字段值。当新值大于当前字段值时,更新数据。$max支持不同类型的数据比较。

2024-04-03 11:28:13 726

原创 Mongodb中一个小巧的数据更新命令$inc

使用操作符$inc,按照用户指定的大小,增加或减少字段值。

2024-04-01 17:10:29 621

原创 Mongodb字段更新操作符$currentDate

Mongodb支持使用操作符$currentDate更新字段为当前时间。默认更新成Date类型的时间。但也支持将字段更新成为timestamp. 当字段不存在时,向更新的文档中添加字段并更新成当前时间。

2024-04-01 16:36:52 1025

原创 Mongodb文档更新不要只用$set

自Mongodb 4.2版本开始,用户可以在UPDATE操作中,定义聚合管道来更新数据。自接触Mongodb以来,更新操作似乎都可以通过$set来完成,很少使用其他操作符。工作之余,有时间来阅读官方文档,整理了一些使用聚合管道更新数据的用例。Mongodb支持聚合管道中使用下面的方法,来更新数据。

2024-02-22 14:33:51 449

原创 MongoDB 文档更新update

无论是关系型数据库还是非关系型数据库,数据插入数据库,都会有更新的需求。与其他数据库数据一致,mongodb提供update方法来更新数据库中的数据。

2024-02-22 13:41:29 709

原创 Mongodb $text详解

text在包含文本索引字段的集合中,执行文本检索。

2024-02-21 16:57:33 1138

原创 Mongodb 文本检索

Mongodb支持对字符串字段的文本检索。在Mongodb atlas中, 对这种文本检索的功能进行了增强。提到文本检索, 难免不会想到实现非常火爆的AI, 聊天服务等时髦技术。mongodb提供的这种文本检索功能+适当的算法实践,似乎可以支持这些应用场景。本文研究Mongodb文本检索文档,整理出在本地Mongo数据库中使用文本检索的方法和注意事项。

2024-02-16 11:35:34 756

原创 Mongodb投射中的$slice,正向反向跳过要搞清楚

投射中使用$slice命令,指定查询结果中返回数组元素的数量。

2024-01-30 09:31:54 674

原创 Mongodb查询投射中的$elemMatch

投射中$elemMatch与$操作符号一样,都是返回数组中第一个符合查询条件的数据。但两个操作命令也有差异。使用$符号时,用户只能通过查询条件来过滤数组元素。而使用$elemMatch时,用户可以显示的定义更多的数组过滤条件。同时$elemMatch也支持文档数组中多个字段的查询条件定义。

2024-01-28 07:57:47 542

原创 Mongodb查询投射中使用$符号

数组定位符号$,限定返回数组中第一个匹配查询条件的数组元素。当用户只想返回数组中一个指定元素时,在find()或findOne()方法的投射文档中,在数组字段后添加.$符号。

2024-01-28 07:13:03 362

原创 Mongodb 控制查询返回字段

使用关系型数据库时,用户在select命令后添加字段名称控制返回字段。mongodb中也支持对查询返回字段的控制。默认返回文档的所有字段。为了限制返回数据量,提高网络传输速率。用户可以通过投射(projection)来指定返回字段或在返回结果中排除一些字段。

2024-01-22 17:02:46 620

原创 警惕!mongodb文档数组查询容易犯错

与mongodb的数组查询类似,mongodb针对文档数组查询也值得一读,使用的时候,值得认真思考。

2024-01-22 11:43:22 475

原创 Mongodb中老司机也会漏掉的点——数组查询

本文基于mongodb官方文档,整理了字段值为数组类型的文档查询方法。以往涉猎mongodb数组查询较少,而且一直认为与对其他类型字段查询无异,直到深入阅读文档,才发现自己对数组查询认知错误。确实通过认真阅读文档,学习到了知识,补上漏洞。刚刚也与使用mongodb多年的朋友也讨论了本文中的查询方法,数组查询的这个知识漏洞,确实很容易忽略。

2024-01-19 16:43:02 442

原创 Mongodb中嵌套对象的查询

Mongodb文档由BSON键值对构成。BSON键值对中值的类型,允许字符串,数字,数组,文档类型等。本文基于Mongodb的官方文档,对嵌套文档的查询进行整理,以供参考。

2024-01-19 10:51:21 462

原创 MongoDB查找命令find,让数据返回称心如意

业务系统接入数据库后,每天都有大量的数据写入数据库。面对逐日增加的数据,开发人员或数据分析人员,该如何读取数据,怎样设置条件,从数据库中查询数据?本文基于mongodb的官方文档,整理出find命令的基本用法。

2024-01-09 14:40:47 922

原创 MongoDB聚合操作符$ifNull

Mongodb集合中对文档结构没有严格限制。随着业务的变化,字段也会出现新增,修改等操作。当读取新字段时,旧数据因为不存在该字段而返回空数据。mongodb的聚合操作符中的$ifNull, 按照用户指定的方式返回空字段值,为字段缺失查询提供了便利和灵活性。

2024-01-09 11:32:30 920

原创 Mongodb删除操作中字符序对结果的影响

既然使用查询条件{ category: "cafe"}返回3个结果,那在deleteOne(), deleteMany()方法中指定字符序,会删除多少条数据,删除1条,还是3条。在insertMany()方法中,默认按照数组中的排列顺序插入数据,所以会删除_id为1的数据。首先执行deleteMany()方法,不带有collation,只能够删除满足查询条件的数据,删除了_id为2的数据。返回结果中,删除了3条数据。由此可见,当指定字符序collation时,字符序的引入,对删除数据的结果产生了影响。

2024-01-07 07:54:04 733

原创 Mongodb使用指定索引删除数据

首先,创建测试集合members,集合中包含_id,member,status,points,misc1, misc2两个字段。在"accesses.ops"字段中,能够看到新添加的索引访问数量都是0。删除语法中,除了指定过滤器外,还可以指定写入策略,字符序和使用的索引。执行带有指定索引的删除脚本,指定使用索引"status_1",删除成功。本文通过翻译整理mongodb官方文档,实践使用指定的索引删除数据。重新查看索引使用情况,能够看到"status_1"索引访问次数为1。回顾Mongodb删除语法。

2024-01-07 07:17:10 876

原创 Mongodb的危险操作delete

经常听到各种有趣的新闻,程序员对老板不满,一怒之下删库跑路。或某大厂误操作,把关键数据表删除导致业务停滞几个小时。删库和删表,都是很危险的操作,执行前需要谨慎。否则,轻则需要数据恢复,重则需要引咎辞职甚至锒铛入狱。演绎真实版的从入门到入狱。数据宝贵,千万不要因为错误的操作,导致致命损失。执行删除操作前,也请反复确认删除的数据是否符合目标。本文介绍delete操作前,先介绍一些删除操作的经验。执行delete前,使用find确认删除的数据范围。mongodb删除命令与查找命令find中的过滤器相同。

2024-01-07 06:54:07 789

原创 谈谈Mongodb insertMany的一些坑

Mongodb提供了多种方法向集合中插入数据插入一条数据插入多个文档更新集合中不存在的文档数据,指定{upsert: true}时插入数据。

2024-01-04 17:04:01 1805

原创 对mongodb说hello会得到什么

程序员开始学习一门新的语言,编写的第一段程序往往是打印出“hello world!”.编程,从hello入门,打印出hello world,表示程序在开发人员手里向人类世界说出了第一句话,你好,世界。对程序来说,开发人员塑造了它全世界的样子。Hello world, 你好,我的全世界。

2024-01-04 15:23:52 986

原创 MongoDB CRUD 概述

当本地安装完mongodb数据库后,或拿到一个新的数据库连接字符串时。对于新手来说, 避免不了手痒难耐,想对数据库大肆折腾一番。看到数据库当中存在自己定制化的数据后,心中的成就感油然而生。本文介绍mongodb简单的crud操作,为广大mongodb入门用户止痒。

2024-01-03 10:11:33 760

原创 MongoDB重写

自mongodb 6.1版本开始,如果对单文档操作的两次写入都失败,mongodb会返回一个带有NoWritesPerformed标签的错误。而在以前版本中,两次写入后直接返回一个错误,无法确定是否有数据插入。mongodb自4.2版本开始默认支持可重试写入。数据库升级到4.2版本时,向local数据库写入数据会报错,除非显示指定不支持可重试写入。当与数据库网络出现连接问题或在数据库集群主节点切换时不能找到一个正在工作的主节点时,可重试写允许数据库连接驱动再进行一次数据库写入操作。

2024-01-03 06:59:16 809

原创 Mongodb的可重试读操作

在可重试读前,服务器选择读取节点按照原来命令指定的优先读取节点设置方式。如果数据库连接驱动无法选择一个使用原来的方式读取节点时,连接驱动会报错。在进行服务器选择时,驱动等待时间serverSelectionTimeoutMS。超过该设置时间后,可重试读不再连接数据库。mongodb4.2或以上版本的驱动,默认允许可重试读。mongsh不支持可从试读操作。连接mongodb进行读操作时,遇到网络或数据库集群的主节点切换导致的数据读问题。可重试读只能重试一次。无法支持长时间网络连接断开后的重试读操作。

2024-01-03 06:26:22 754

原创 MongoDB 数据类型

ObjectId是一种小型的,几乎是唯一的,易于产生和排序的数据结构。长度是12个字节,由3部分组成4个字节的时间戳,表明objectId的创建时间,以秒为单位的unix时间5个字节的随机字符串,在运行机器上的进程中是唯一的3个字节的增长计数器,初始值是一个随机数其中时间戳和增长计数器与其他BSON类型不同,是按照高位优先排序。如果使用数字类型来创建ObjectID, ObjectID中的时间戳,会被数字值来替代。//使用数字类型定义3个ObjectID},{},{}])

2023-12-28 11:34:38 1178

原创 Mongodb聚合操作$isNumber

isNumber,判断指定表达式返回值的类型是否是数字类型。若返回数据类型是Integer, Decimal, Double, Long当中的一种,$isNumber返回true,其他的非数字类型,null或文档没有该字段,则返回false。$isNumber使用下面的语法来判断表达式的值。其中expression是任何一个可用的表达式。

2023-12-27 15:48:28 661

原创 Mongodb聚合操作中的$type

返回一个表示传入参数BSON类型的字符串。在聚合操作中,按照下面的语法来返回类型信息其中,expression可以是字段名称,运算等任何合法的表达式。

2023-12-27 14:27:08 721

原创 Mongodb中一个有趣的数值查询案例

数值类型的变化, 是mongodb面临的一个问题之一。开发过程中数据的变化, 变成了浮点型。针对不同数字类型的查询,mongodb有不同的结果。几个查询语句中,最奇怪的当属查询值为1.01的查询语句了。插入数据时, _id为3和_id为4的数据,数值上来看,都是1.01。mongodb在使用{value: 1.01}查询时,隐式的将1.01转化为Double的类型。这样宽松的文档结构管理方法,给新数据的插入和以有数据的修改带来了极大的便利。在types集合中,有5条数据,字段value值是不同的数据类型。

2023-12-27 13:49:56 600

原创 MongoDB中空值null或缺失字段查询

在Mongodb集合中,并没有要求每一个文档具有相同的结构和字段类型。而随着业务的扩展,新插入的文档中,难免会增加新的字段。同样某些字段也可能出现空值null的情况。本文结合mongodb官方文档,整理了mongodb空值null和缺失字段的查询。在库存表当中有两条数据,其中_id为1的文档, 存在item字段,但该字段的值是空值。而_id为2的文档,不包含字段item.

2023-12-27 11:21:14 702

原创 MongoDB使用$type查询指定字段类型的文档

Mongodb集合中的文档结构灵活,不要求具有同一的格式。因此不同的字段可能带有不同类型的值。灵活的结构,为数据的写入带来了方便, 但后面的查询操作,可能会造成一定的麻烦。用户或应用程序需要考虑当前字段值的类型是什么。如果进行数值运算,则要将字符类型和其他类型的字段转化为数字类型。mongodb提供了$type来按照指定的类型来查询文档。

2023-12-27 10:47:07 782

原创 MongoDB中的物化视图

物化视图,预先将聚合管道查询结果保存到硬盘中,并从硬盘直接读取结果。物化视图是$merge和$out过程的结果典型应用。

2023-12-26 16:52:58 1005

原创 MongoDB定容集合(Capped Collection)

Mongodb的文档保存在集合当中,类似关系型数据库当中的表。用户对集合进行增删改查操作。

2023-12-26 15:45:27 903

原创 MongoDB视图的修改与删除

视图,为mongodb的操作和数据安全上提供了便利。但伴随着业务逻辑的发展或数据库维护人员操作当中产生的错误,视图难免需要维护修改。例如增加字段,修改视图中的计算逻辑等。

2023-12-26 06:29:36 628

原创 MongoDB创建和查询视图(二)

基于$lookup命令,通过集合的关联查询,用户可以创建基于两个集合的视图并查询视图数据。应用在构建查询时,无需每次构建和维护复杂的管道查询。字符集中字符串的排列顺序,用于指定字符串的比较规则,包括大小写比较规则,发音标记规则顺序等。Mongodb官网中,展示了一个带有默认字符序的视图。

2023-12-25 17:17:32 591

原创 MongoDB创建和查询视图(一)

本文整理mongodb的官方文档,介绍mongodb的视图创建和查询。Mongodb中,允许使用两种方式来创建视图。

2023-12-25 16:35:04 1005 2

原创 MongoDB视图

MongoDB的视图,是一个只读的可查询对象。视图中的数据,通过定义在其他集合或视图的集合查询中获得。MongoDB的视图,也分为两种,标准视图(简称视图)和物化视图。其中标准视图,是通查意义上所描述和使用的视图。通过视图中查询的数据,并没有保存到数据库硬盘上,而是在查询时,实时计算得到。而物化视图,查询时数据直接从磁盘中读取。

2023-12-25 15:26:25 578

原创 Mongo DB中的集合和数据库

Mongodb数据按照文档的形式,保存在数据库中。文档的结构是类似JSON的BSON结构。一个文档,对应关系型数据库中的数据记录。同样,在mongodb中,也有与关系型数据库结构中表相对应的结构——集合。

2023-12-25 11:21:41 1043

原创 Mongodb中的ObjectId

ObjectId是一种小型的,几乎是唯一的,易于产生和排序的数据结构。长度是12个字节,由3部分组成4个字节的时间戳,表明objectId的创建时间,以秒为单位的unix时间5个字节的随机字符串,在运行机器上的进程中是唯一的3个字节的增长计数器,初始值是一个随机数其中时间戳和增长计数器与其他BSON类型不同,是按照高位优先排序。如果使用数字类型来创建ObjectID, ObjectID中的时间戳,会被数字值来替代。//使用数字类型定义3个ObjectID},{},{}])

2023-12-04 16:02:42 784

原创 使用mongodb实现简单的读写操作

本文适合初学者,特别是刚刚安装了mongodb数据库的朋友,或在atlas刚拿到免费集群的朋友。拿到数据库,心情很激动,手痒难耐。特别想向数据库插入几条数据库试试。即使是深夜完成了安装,也忍不住想去完成这些操作。看到数据库里的记录,心中会更有成就感。这是一个里程碑的时刻,代表着mongodb学习的开始。或者其他任何一种数据库技能学习的开始。本文基于官方文档,整理出mongodb简单的增删改查操作。

2023-12-04 06:58:08 808

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除