一.用数组结构实现大小固定的栈 public static class ArrayStack { private Integer[] arr; private Integer size;...new ArrayIndexOutOfBoundsException("The queue is empty"); } return arr[--size]; } } 二.用数组结构实现大小固定的队列...0 : first + 1; return arr[tmp]; } } 注意这里的size的用法。
栈的实现 栈的特点是先进后出,所以用数组实现栈时,只需要利用一个指针判定数据存储的位置即可,添加元素时判断指针是否超过数组长度,如果没有越界将元素添加到指针所指的位置,并将指针向下移动一位;否则返回异常...队列的特点是先进先出"FIFO",所以用数组实现队列操作时,我们需要利用三个变量对数组进行操作,start指针用于记录先进队列的数据,end指针始终指向存入数据的下个位置,如果指针越界则返回0点。...size用于记录队列中元素的个数,加入元素时需要先判断size大小是否超过数组的长度,如果超出则抛出异常显示队列已满,反之则将元素添加至end指针所指的位置,并将end指针移位(需要判断是否发生指针越界...当队列未满时(cur_size的数放到end位置,当队列不为空时(size>0),出队的数为start位置的数。...Integer[] arr; private Integer size; private Integer start; private Integer end; //初始化队列大小
日常开发中,有时需要了解数据分布的一些特点,比如这个colllection里documents的平均大小、全部大小等,来调整程序的设计。...参见:https://www.mongodb.com/docs/v4.4/reference/operator/aggregation/collStats/#mongodb-pipeline-pipe....如果想获取总计、平均等简单的统计信息,可以参考这里:https://www.mongodb.com/docs/manual/core/aggregation-pipeline/#std-label-aggregation-pipeline...下面的命令可以显示 COLLECTION 中满足条件status=’active’,字段FIELD_A, FIELD_B的数据大小的quantile analysis。...实际使用时用自己的集合名、字段名以及过滤条件进行替换即可。 //最大的Top10和百分比分布。
golang代码如下: package main import ( "errors" "fmt" ) /* 怎么用数组实现不超过固定大小的队列?
·多核的可扩展性 WiredTiger在多核架构提供的可扩展性下,利用风险指针、无锁算法、快速锁存等技术减少了线程间的争用。...线程可以在不阻塞彼此的情况下执行操作,从而减少线程争用、提供更好的并发性和更高的吞吐量。 ·文档级并发 WiredTiger使用文档级并发控制写操作。使多个客户端可以同时修改集合的不同的文档。...当为true时,mongod会分别单独以索引命名的子目录存储索引和以集合命令的子目录存储集合数据。 blockCompressor:默认值为snappy,用于压缩集合数据的压缩的默认类型。...nsSize:默认为16,命名空间文件的默认大小,这些文件是以ns结尾的文件。每个集合和索引都算作名称空间。此设置控制新创建的命名空间文件的大小。此项对现有文件没有影响。...smallFiles: 默认为false,如果为true,MongoDB使用一个较小的默认文件大小。 debugFlags: 作用是提供功能性测试,在系统发生异常关闭时,影响的数据文件的完整性。
固定大小的集合的工作方式类似于循环缓存:一旦一个集合被填满,待插入的文档会覆盖掉最先插入的文档。...考虑下面对固定集合可能的操作: 存储由大容量系统生成的日志信息。在无索引的情况下,文档插入固定集合的速度与将日志信息写入文件系统的速度相似。...文档大小(3.2版本变更) 如果更新或替换操作改变了文档大小,则操作失败。 删除文档 不能删除固定集合中的文档,可使用drop() 命令删除整个固定集合并新建之。 分片 固定集合不允许分片。...聚集操作符$out 不能使用聚集管道操作符$out将结果写入固定集合 3.3.4过程 创建固定集合 在mongo shel中,使用db.createCollection()方法创建固定集合,创建固定集合的时候要指定集合的字节大小...固定集合的字节大小包含了内部使用的空间大小。
文档中的键值对是有序的。 文档中的键是字符串。 集合是mongoDb的 文档组,就像是table。但是没有固定的格式,任意格式和类型的数据都可以插入。...Capped collections 就是固定大小的collection。它有很高的性能以及队列过期的特性(过期按照插入的顺序). 有点和 "RRD" 概念类似。...固定集合插入速度,按照插入顺序查询极快,并且能自动删除老数据。...multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。...索引是存储在内存中的,由于索引是存储在内存(RAM)中,你应该确保该索引的大小不超过内存的限制。 如果索引的大小大于内存的限制,MongoDB会删除一些索引,这将导致性能下降。
文档命令 四、MongoDB 文档查询拓展 1、条件操作符 2、limit 读取记录的条数 3、skip 跳过的记录条数 4、排序 5、索引 6、聚合 ---- 一、MongoDB 数据库命令 1、启动...数据库 mongo :/ # 无连接启动mongo->获取指定主机和端口的连接->获取数据库 mongo --nodb conn = new...: 参数:要创建的集合名称,可选参数,指定有关内存大小及索引的选项 参数: :如果为 true 则创建固定集合(有着固定大小的集合); :为固定集合指定一个最大值,如果 capped 为 true 需要指定该字段; :指定固定集合中包含文档的最大数量。...) 参数说明: :可选,删除的文档的条件。
语法格式: db.createCollection(name, options) 参数说明: name: 要创建的集合名称 options: 可选参数, 指定有关内存大小及索引的选项 options 可以是如下参数...固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。...size 数值 (可选)为固定集合指定一个最大值(以字节计)。 如果 capped 为 true,也需要指定该字段。 max 数值 (可选)指定固定集合中包含文档的最大数量。...在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。...() 的用法: 创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
其中name是集合名称,options是可选参数,用于指定集合的特性,如固定集合(capped collection)的大小和最大文档数。...#显示当前db所有聚集索引的状态五、文档操作插入文档:使用 insert 或 save 方法插入文档(在较新的 MongoDB 版本中,save 方法已被弃用,推荐使用 insertOne 或 insertMany...mycol,整个集合空间大小 6142800B, 文档最大个数为 10000个show collections show tables #查看已有集合#在 MongoDB 中,你不需要创建集合...无 新增:db.集合名称.insert/save/insertOne(文档)修改:db.集合名称.update(条件,{操作种类:{文档}})删除:db...它会间隔固定时间获取mongodb的当前运行状态,并输出。
一般情况下我们创建的集合是没有大小的,可以一直往里边添加文档,这种集合可以动态增长,MongoDB中还有一种集合叫做固定集合,这种集合的大小是固定的,我可以在创建的时候设置该集合中文档的数目,假设为100...一般像日志信息我们就可以使用固定集合,其他一些需要定期删除的数据也可以使用固定集合,本文我们就来看看这个固定集合的使用。...true参数表示该集合为一个固定大小集合,size表示集合的大小,单位为kb,max则表示集合中文档的最大数量。...我们这里相当于给了固定集合两个限制条件,只要有任意一个限制条件满足,集合都会开始将更古老的数据删除。固定集合一旦创建成功就不能再修改,想修改只能删除重来。...好了,MongoDB中的固定集合我们就说到这里,小伙伴们有问题欢迎留言讨论。 参考资料: 1.《MongoDB权威指南第2版》
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB 最大的特点就是无 Schema 限制,灵活度很高。...操作日志存储 很多时候,我们需要存储一些操作日志,可能只需要存储比如最近一个月的,一般的做法是定期去清理,在 MongoDB 中有固定集合的概念,我们在创建集合的时候可以指定大小,当数据量超过大小的时候会自动移除掉老数据...爬虫数据存储 爬下来的数据有网页,也有 Json 格式的数据,一般都会按照表的格式去存储,如果我们用了 MongoDB 就可以将抓下来的 Json 数据直接存入集合中,无格式限制。...所以再设计的时候可以使用嵌入的文档和数组来描述数据之间的关系,这样就不用跨多个文档和集合进行操作,也就通过了单文档原子性消除了许多实际用例对多文档事务的需要。...本质上还是讲文件的数据分块存储在集合中,默认的文件集合分为 fs.files 和 fs.chunks。 fs.files 是存储文件的基本信息,比如文件名,大小,上传时间,md5 等。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 MongoDB 最大的特点就是无 Schema 限制,灵活度很高。...操作日志存储 很多时候,我们需要存储一些操作日志,可能只需要存储比如最近一个月的,一般的做法是定期去清理,在 MongoDB 中有固定集合的概念,我们在创建集合的时候可以指定大小,当数据量超过大小的时候会自动移除掉老数据...爬虫数据存储 爬下来的数据有网页,也有 Json 格式的数据,一般都会按照表的格式去存储,如果我们用了 MongoDB 就可以将抓下来的 Json 数据直接存入集合中,无格式限制。...:用于过滤数据,只输出符合条件的文档。match 使用 MongoDB 的标准查询操作。 $limit:用来限制 MongoDB 聚合管道返回的文档数。...本质上还是讲文件的数据分块存储在集合中,默认的文件集合分为 fs.files 和 fs.chunks。 fs.files 是存储文件的基本信息,比如文件名,大小,上传时间,md5 等。
=VALUE键值对构成 {“name”:”admin”, “gender”:”男”} 集合:存储多个文档,结构不固定 {“name”:”admin”, “gender”:”男”} {“name”:”manager...下Mongodb安装 直接下载msi文件或者点击All Verison Binaries下载都行 我这里用的是zip安装,安装完毕后, 当前所在磁盘目录下创建data文件夹...,可以直接用apt-get命令进行安装。...pip install –upgrade pymongo 升级PyMongo 安装成功 命令运行成功无报错 4.Mongodb基本使用 1.基本操作 mongoDB将数据存储为一个文档 数据由 key...- 查询数据 基本查询 find([{文档条件}]):全集合查询 findOne([{文档条件}]):查询第一个 pretty():将查询结果格式化展示 比较运算符 默认判断,无运算符 $lt:
集合就是关系型书库中的表 文档对应关系型数据库中的行 文档:就是一个JSON对象,由KEY=VALUE键值对构成 {“name”:”admin”, “gender”:”男”} 集合:存储多个文档,结构不固定...打开一个新的窗口,用于数据库操作 2、Linux下MongoDB安装 MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。...用Python操作MongoDB需要通过PyMongo,输入命令安装 pip install pymongo 默认安装 pip install pymongo==2.8 安装指定版本...命令运行成功无报错 4、MongoDB基本使用 1.基本操作 mongoDB将数据存储为一个文档; 数据由 key=value 的键值对的形式组成; 数据的操作:增删改查; nosql三元素:数据库 –...查询数据 find([{文档条件}]):全集合查询; findOne([{文档条件}]):查询第一个; pretty():将查询结果格式化展示; 比较运算符 默认判断,无运算符 $lt:little~
集合就是关系型书库中的表 文档对应关系型数据库中的行 文档:就是一个JSON对象,由KEY=VALUE键值对构成 {“name”:”admin”, “gender”:”男”} 集合:存储多个文档,结构不固定...我这里用的是zip安装,安装完毕后, ?...下Mongodb安装 MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。...集合名称>.update(, ,[multi:]) 指定属性更新:$opration multi:默认false更新符合条件第一条,设置true全集合更新 #更新符合条件的文档 db.student.update...文档条件}]):全集合查询 findOne([{文档条件}]):查询第一个 pretty():将查询结果格式化展示 比较运算符 默认判断,无运算符 $lt:little~小于 < $lte:little
i=0;i<1000;i++){db.collection2.insert({name:"xiaomu"+i,age:20+i});} 固定集合 固定集合指的是事先创建而且大小固定的集合。...固定集合特性:固定集合很想环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。...一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制. db.createCollection("collectionName",{capped:true,size:10000,max...:100});//size指定集合大小,单位为KB,max指定文档数量 当文档数量上限时必须同时指定大小。...# 查询: **固定条件查询:** 注:mongodb中每条数据都有一个id,用来唯一标识一条数据,id由mongo本身来维护 db.collection1.find();//查询集合中所有的数据
固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。...在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。...collectionsrunoobsystem.indexes下面是带有几个关键参数的 createCollection() 的用法:创建固定集合 mycol,整个集合空间大小 6142800 KB,...条件操作符 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。..."MongoDB 固定集合(Capped Collections) MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列
MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。...语法格式: db.createCollection(name, options) 参数说明: name: 要创建的集合名称 options: 可选参数, 指定有关内存大小及索引的选项 options...固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。 autoIndexId 布尔 3.2 之后不再支持该参数。...size 数值 (可选)为固定集合指定一个最大值,即字节数。如果 capped 为 true,也需要指定该字段。 max 数值 (可选)指定固定集合中包含文档的最大数量。...在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。
MongoDB内建了多种数据分片的特性,可 以很好的适应大数据量的需求。内建的Sharding分片特性避免系统在数据增长的过程中遇到性能瓶颈。 2. 复杂数据结构,以多种不同查询条件去查询同一份数据。...非事务并且关联性集合不强的都可以使用(MongoDB4.0+支持跨Collection事务,MongoDB4.2+支持跨Shard事务)。 4. 无多文档事务性需求及复杂关联检索。 5....【建议】尽量存放统一了大小写后的数据 ; 7.【建议】如果评估单集合数据量较大,可以将一个大表拆分为多个小表,然后将每一个小表存放在独立的库中或者sharding分表。 四、索引设计规范 1....【建议】如果你结合体积大小/文档数固定,那么建议创建 capped(封顶)集合,这种集合的写入性能非常高并无需专门清理老旧数据,需要注意的是 capped 表不支持remove() 和 update()...【建议】合理控制连接池的大小,限制连接数资源,可通过Connection String URL中的 maxPoolSize 参数来配置连接池大小。 3.
领取专属 10元无门槛券
手把手带您无忧上云