随笔分类 -  MongoDB

1
摘要:分组并获取每个分组中Top N个数据的需求在实际开发的过程中经常会遇到。例如,购物网站中经常会遇到的展示一个店铺列表,每个店铺列表中带有多个该店铺的产品信息。当然,展示店铺列表并分别去获取店铺指定数量的产品是个最为简单的做法,但需要消耗大量的资源。 在本文中,我们将会以一个简单的例子展示在Mongo 阅读全文
posted @ 2021-11-10 11:49 苍青浪 阅读(1563) 评论(0) 推荐(0) 编辑
摘要:在MongoDB副本集中,主节点负责处理客户端的读写请求,备份节点则负责映射主节点的数据。 备份节点的工作原理过程可以大致描述为,备份节点定期轮询主节点上的数据操作,然后对自己的数据副本进行这些操作,从而保证跟主节点的数据同步。 至于主节点上的所有数据库状态改变的操作,都会存放在一张特定的系统表中。 阅读全文
posted @ 2021-07-30 16:31 苍青浪 阅读(539) 评论(0) 推荐(0) 编辑
摘要:一、定义$addToSet $addToSet添加值到一个数组中去,如果数组中已经存在该值那么将不会有任何的操作。 $addToSet的操作格式如下: { $addToSet: { <field1>: <value1>, ... } } 二、考虑一个集合文档test,包含一个数组字段letters{ 阅读全文
posted @ 2021-06-10 19:59 苍青浪 阅读(1495) 评论(0) 推荐(0) 编辑
摘要:我有两个集合,文章和评论,评论中的文章是文章中_id的外键. db.collection('article').aggregate( [ { $lookup: { from: "comments", localField: "_id", foreignField: "articleId", as: 阅读全文
posted @ 2021-06-07 11:22 苍青浪 阅读(1789) 评论(0) 推荐(0) 编辑
摘要:mongo开启事物支持如下配置: /** * Configuration options for a transaction. * @see https://mongodb.github.io/node-mongodb-native/3.6/api/global.html#TransactionOp 阅读全文
posted @ 2021-05-25 18:41 苍青浪 阅读(626) 评论(0) 推荐(0) 编辑
摘要:在MongoDB操作的时候,我们可能会遇到查询【字段对应的数组中包含某个值】的数据,查询语句如下,假设表名为user。 示例1 数据 { id: 1, state_arr: [ "123", "456", "789" ], date: "2019-09-02" } 查询语句 db.user.find 阅读全文
posted @ 2021-05-25 16:33 苍青浪 阅读(1872) 评论(0) 推荐(0) 编辑
摘要:索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。 索引是特殊的数据结构,索引存储在一个易于遍历读取 阅读全文
posted @ 2021-05-25 11:07 苍青浪 阅读(63) 评论(0) 推荐(0) 编辑
摘要:mongoose数据校验是指用户通过mongoose给mongodb数据库增加数据的时候,对数据的合法性进行的验证,在mongoose里面定义Schema的时候,通过设置字段类型,修饰符、默认参数 、数据校验等都是为了数据库数据的一致性。 required: 表示这个数据必须传入 max: 用于 N 阅读全文
posted @ 2021-05-20 12:31 苍青浪 阅读(170) 评论(0) 推荐(0) 编辑
摘要:mongo聚合查询之 $addFields的作用: 大致说明:字面意思是添加字段,就是在查询的结果再添加一些字段信息,字段的内容自己决定,可能还是不能理解,下面上码 $addFields用法支持mongo3.4及以上的版本 1.这是字段统计式的用法 准备数据: { _id: 1, student: 阅读全文
posted @ 2021-05-19 10:32 苍青浪 阅读(1213) 评论(6) 推荐(0) 编辑
摘要:在使用MongoDB存储数据的时候,我们查询的时候,有时候难免会需要进行连表查询。但是MongoDB本身是非关系性数据库,连表查询,很多时候,需要我们自己在代码里手工操作。但是从 MongoDB 3.2 版本过后,我们可以使用 $lookup 进行连表查询。下面就简单介绍一下 MongoDB 的 $ 阅读全文
posted @ 2021-05-19 10:15 苍青浪 阅读(1879) 评论(0) 推荐(0) 编辑
摘要:在工作中会经常遇到一些mongodb的聚合操作,特此总结下。mongo存储的可以是复杂类型,比如数组、对象等mysql不善于处理的文档型结构,并且聚合的操作也比mysql复杂很多。 注:本文基于 mongodb v3.6 目录 mongo与mysql聚合类比 aggregate简介 aggregat 阅读全文
posted @ 2021-04-15 20:00 苍青浪 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR。 一、聚合 aggregate聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg() 语法: db.集合名称.aggregate([{管道:{表达式}}]) 管道:管道在Unix和Linux中一般用于 阅读全文
posted @ 2021-04-14 10:13 苍青浪 阅读(1498) 评论(0) 推荐(0) 编辑
摘要:对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键,用来指定复杂的操作,比如增加、删除或者调整键,还可能是操作数组或者内嵌文档。 1.$inc 这个修改器干什么使的呢?看看下面示例的具体操作后的结果即可知道。 示例文档: { 阅读全文
posted @ 2019-05-10 09:23 苍青浪 阅读(565) 评论(0) 推荐(0) 编辑
摘要:方法一1、打开命令窗口,切换到mongodb安装目录下的“bin”目录中。 输入命令:cd E:\software\MongoDB\Server\3.4\bin 2、启动服务。输入命令:”mongod --dbpath E:\software\MongoDB\data 注:--dbpath是指定数据 阅读全文
posted @ 2019-05-09 16:53 苍青浪 阅读(37808) 评论(1) 推荐(8) 编辑
摘要:这两天折腾mongoose,发现数据成功写入集合了,但是在Terminal查询的时候却查不到 于是show collections后发现在原来的集合底下,又生成了一个加了s的集合,shenmegui 查了一下,发现是mongoose.model()的问题 Mongoose#model(name, [ 阅读全文
posted @ 2019-05-08 15:36 苍青浪 阅读(975) 评论(0) 推荐(0) 编辑
摘要:索引就像书的目录,如果查找某内容在没有目录的帮助下,只能全篇查找翻阅,这导致效率非常的低下;如果在借助目录情况下,就能很快的定位具体内容所在区域,效率会直线提高。 索引简介 首先打开命令行,输入mongo。默认mongodb会连接名为test的数据库。 ➜ ~ mongo MongoDB shell 阅读全文
posted @ 2019-05-08 10:17 苍青浪 阅读(528) 评论(0) 推荐(0) 编辑
摘要:MongoDB 条件操作符 描述 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte 我们使用的数据库名称为"runoob" 我们的集 阅读全文
posted @ 2018-11-07 10:20 苍青浪 阅读(423) 评论(0) 推荐(0) 编辑
摘要:MongoDB 创建数据库 语法 MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。 如果你想查看所有数据库,可以使用 show dbs 命令 注意: MongoDB 中默认的数据库为 test,如果你没有创建新的数 阅读全文
posted @ 2018-11-06 21:51 苍青浪 阅读(310) 评论(0) 推荐(0) 编辑
摘要:数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数据库为"db",该数据库存储在data目录中。 MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。 "show dbs" 命令可以显示所有数据的列表。 > show 阅读全文
posted @ 2018-11-06 21:32 苍青浪 阅读(265) 评论(0) 推荐(0) 编辑
摘要:1.启动、停止和重启mongodb服务 brew services start mongodb 启动 brew services stop mongodb --停止 brew services restart mongodb --重启 2.mongo cli The mongo shell is a 阅读全文
posted @ 2018-11-06 21:04 苍青浪 阅读(951) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示
哥伦布
03:14发布
哥伦布
03:14发布
7°
多云
西南风
3级
空气质量
相对湿度
64%
今天
多云
-1°/10°
周三
小雨
2°/12°
周四
中雨
2°/14°