一、Capped Collection固定集合

    简单介绍

        capped collections是性能出色的有着固定大小的集合(定容集合),以LRU(Least Recently Used最近最少使用)规则和插入顺序进行 age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创 建时要预先指定大小。如果空间用完,新添加的对象将会取代集合中最旧的对象。

    功能特点

        可以插入及更新,但更新不能超出 collection 的大小,否则更新失败。不允许删除,但是可 以调用 drop() 删除集合中的所有行,但是 drop 后需要显式地重建集合。在 32 位机上,一 个capped collection的最大值约为482.5M,64 位上只受系统文件大小的限制。

    1、创建固定集合

        createCollection("my_collection",{capped:true,size:10000})

            创建一个名为“my_collection”的固定集合,大小为10000字节。还可以限定文档个数加上Max:100属性。

            注意:指定文档上限,必须制定大小。文档限制是在容量没满进行淘汰,要是满了,就根据容量限制来淘汰。

    2、转换集合

        db.runCommand({convertTocapped:"text",size:10000});

            把text普通集合转换为固定集合,大小为10000字节

    3、自然排序---$natural(默认顺序是按照插入顺序返回的)

        db.my_collection.find().sort({"$natural":1})    //1标示默认顺序,-1则相反

二、GridFS

    简介:

      GridFs是一种在MongoDB中存储大二进制文件的机制,使用GridFs的原因有以下几种:

        储存巨大的文件,比如视频、高清图片等。

        利用GridFs可以加化需求。

        GridFs会直接利用已经建立的复制或分片机制,故障恢复和扩展都很容易。

        GridFs可以避免用户上传的文件系统出现问题。

        GridFs不产生磁盘碎片。

      GridFs使用两个表来存储数据:

        files  包含元数据对象

        chunks  包含其他一些相关信息的二进制快

        为了使多个GridFs命名为一个单一的数据库,文件和块都有一个前缀,默认情况下,前缀是fs,所以任何默认的GridFs存储将包括命名空间fs.files和fs.chunks.

        各种第三方语言可以更改其前缀。

    1、使用GridFs mongofiles

        mongodiles是从命令行操作GridFs的一种工具

        三个命令:

          put(存储)    ./mongofiles put 文件

          get(取得)    ./mongofiles get 文件

          list(列表)    ./mongofiles list

          delete(删除)  

Mongodb学习笔记(二)Capped Collection固定集合的更多相关文章

  1. MongoDB学习笔记二- Mongoose

    MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...

  2. MongoDB学习笔记(二) 通过samus驱动实现基本数据操作

    传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由(database).集合(collection).文档对象(documen ...

  3. Mongodb 学习笔记(二) :索引

    Mongodb 是基于集合建立索引 (Index),索引的作用类似于传统关系型数据库,目的是为了提高查询速度 . 如果没有建立索引, Mongodb  在读取数据时必须扫描集合中的 所有文档记录. 这 ...

  4. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...

  5. Mongodb学习笔记二(Mongodb基本命令)

    第二章 基本命令 一.Mongodb命令 说明:Mongodb命令是区分大小写的,使用的命名规则是驼峰命名法. 对于database和collection无需主动创建,在插入数据时,如果databas ...

  6. MongoDB学习笔记二:创建、更新及删除文档

    插入并保存文档 对目标集使用insert方法插入一个文档: > db.foo.insert({"bar" : "baz"}) 这个操作会给文档增加一个&q ...

  7. MongoDB学习笔记(二)

    MongoDB的其他方法: 显示指定数目的数据: 1.在mongodb中查询指定数目的记录,可以使用: db.collectionname.find().limit(number); 2.在mongo ...

  8. MongoDB学习笔记二:使用Docker安装MongoDB

    目录 Docker安装MongoDB Docker给MongoDB设置用户密码 NoSQL Manager for MongoDB连接 为admin赋权限 上一个笔记介绍了Windows下安装Mong ...

  9. MongoDB 学习笔记之 删除数据,集合,数据库

    删除数据,集合,数据库: 删除一个文档: db.media.deleteOne({"name": "Sky"}) 删除多个文档: db.media.delete ...

随机推荐

  1. pytest-fixture之conftest.py

    场景: 对于一个py文件中某些用例需要前置条件,某些用例不需要前置条件的情况,使用setup/teardown肯定是不方便的, 这时就需要自定义测试用例的前置条件. 1.fixture优点: 命名不局 ...

  2. Ubuntu使用ipython出现版本不兼容的问题

    今天租了一个ECS,然后准备安装了jupyter,准备配置,输入ipython,出现如下报错 ImportError: IPython 7.10+ supports Python 3.6 and ab ...

  3. 题解【AcWing279】自然数拆分

    题面 因为题目中说参与加法运算的数可以重复,由此可以想到完全背包计数问题. 完全背包计数问题与 \(01\) 背包计数问题只有一个不同: \(01\) 背包计数问题的第二维循环是倒叙循环,而完全背包计 ...

  4. 对Ajax返回的json数据做处理报错

    这个错误出现的原因是我再返回数据为json时,我页面的Ajax没有指定dataType: 'json'

  5. vscode里的NPM脚本

    NPM脚本的开启与关闭 点击设置-功能-任务 控制为所有任务提供程序扩展启用"提供任务".如果"任务:运行任务"命令速度较慢,则禁用任务提供程序的自动检测可能会 ...

  6. python基础数据类型整理

    一.数据类型 (一).小技巧 1.PyCharm:选中多行,按"Ctrl+/"可批量注释掉 (二).字符串 1.startswith(str,[,start][,end]) #判断 ...

  7. [CodeIgniter4]故障排除和本地开发服务器

    故障排除 以下是一些常见的安装问题,以及建议的解决方法. 我必须在我的URL中包含index.php 如果``/mypage/find/apple``类似的URL``/index.php/mypage ...

  8. [HEOI2015] 小Z的房间 - 矩阵树定理

    #include <bits/stdc++.h> using namespace std; #define int long long const int N = 105; const i ...

  9. python3练习100题——015

    原题链接:http://www.runoob.com/python/python-exercise-example15.html 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用 ...

  10. codeforces 1284E. New Year and Castle Construction(极角排序+扫描枚举)

    链接:https://codeforces.com/problemset/problem/1284/E 题意:平面上有n个点,问你存在多少组四个点围成的四边形 严格包围某个点P的情况.不存在三点共线. ...