二、Collections
概述
Collections可以理解为关系数据库中的表。Mongo是一个模式自由的数据库,意味着在存入数据之前不必声明字段类型。一个Collections会在第一次插入数据的时候自动创建。
命名规则
一个Collections必须以字母或下划线开头,可以包含数字。$是保留字符。每个Collections的命名长度上限为120个字符(包括索引名和数据库名),推荐保持在80~90个字符以内。
Capped Collections
这是一种固定大小的Collections,具有非常高的性能,LRU算法(特意百度了一下,一种类似GC的机制)。必须在创建Collections的时候就指定是Caped Collections和以字节为单位定义空间大小。
db.createCollection("mycoll", {capped:true, size:100000})
需要注意的地方:
1、mongo不允许删除一个非空的Capped Collections,使用drop()方法先把Collections内的所有记录删除。
2、一个capped Collections在32位系统上的最大值为1e9字节*(约和482.5M),在64位系统则只有系统限制。
3、一旦存储空间用完,则最后插入的数据会覆盖掉最早插入的数据。
4、logging。Mongo中日志机制的首选,Mongo没有使用日志文件,而是把日志事件存储在数据库中。在一个没有索引的capped collection中插入对象的速度与在文件系统中记录日志的速度相当。
5、 cache。缓存一些对象在数据库中,比如计算出来的统计信息。这样的需要在collection上建立一个索引,因为使用缓 存往往是读比写多。
6、auto archiving。可以利用capped collection的roll out特性,省去了写cron脚本进行人工归档的工作。
7、可以在创建capped collection时指定collection中能够存放的最大文档数。但这时也要指定size,因为总是先检查size后检查maxRowNumber。可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大。如:
db.createCollection("mycoll", {capped:true, size:100000, max:100});
db.mycoll.validate();
max=1时会往collection中存放尽量多的documents。
8、上述的createCollection函数也可以用来创建一般的collection,还有一个参数"autoIndexID",值可以为"true"和"false"来决定是否需要在"_id"字段上自动创建索引,如:
db.createCollection("mycoll", {size:10000000, autoIndexId:false})
默认情况下对一般的collection是创建索引的,但不会对capped collection创建。
未完待续
http://www.mongodb.org/display/DOCS/Capped+Collections
分享到:
相关推荐
MongoDB 学习笔记 本文档是 MongoDB 学习笔记,涵盖了 NoSQL、Cache、运行平台等多个方面的知识点。 一、NoSQL 数据库 MongoDB MongoDB 是一个强大、灵活、可扩展性好的文档数据存储器,可以完成大部分关系数据库...
本篇学习笔记将从基础操作到高级功能,详细阐述MongoDB的关键知识点。 首先,MongoDB的基本单元是集合(collection),类似于关系型数据库中的表,而集合中的元素称为文档(document),文档是键值对的集合,类似于...
### MongoDB 学习笔记知识点详解 #### 一、MongoDB 命令行基础操作 **1.1 帮助命令** - **help**:显示 MongoDB shell 的基本帮助信息。 - **db.help()**:提供当前数据库的帮助信息。 - **db.mycoll.help()**:...
### MongoDB 学习笔记知识点详解 #### MongoDB 介绍 ##### 简介 MongoDB 是一种基于分布式文件存储的数据库,使用 C++ 编写。它主要为 Web 应用程序提供可扩展、高性能的数据存储解决方案。MongoDB 的数据结构非常...
以下是对MongoDB学习的一些关键知识点的详细解释: 1. **MongoDB的基本概念**:MongoDB以集合(Collections)的形式存储数据,集合相当于关系型数据库中的表。集合内包含文档(Documents),文档是JSON格式的数据...
### MongoDB入门知识点详解 #### MongoDB概述 MongoDB是一款开源、高性能、无模式的文档型数据库系统,被...通过这些命令和方法的学习,您可以更深入地理解MongoDB的基本操作,并能有效地管理和维护MongoDB数据库。
### MongoDB 3.2 实战笔记 #### 一、前言 MongoDB 是一款非常流行的开源文档型数据库系统,以其高性能、高可用性以及灵活的数据模型而受到广泛欢迎。本篇实战笔记主要针对 MongoDB 3.2 版本,涵盖其安装、配置、...
MongoDB是一种流行的开源文档数据库系统,属于...这些笔记和教程涵盖了MongoDB的基础知识到高级用法,对于学习和理解MongoDB的操作和特性非常有帮助。通过阅读提供的文档,可以深入学习MongoDB的使用技巧和最佳实践。
MongoDB是一种非关系型数据库,它是面向集合的文档存储系统,这意味着它不使用传统的关系数据库模式,如表格、列和行。...学习和掌握MongoDB的操作,对于开发人员和数据库管理员来说是非常有价值的技能。
这是一个名为"selfimpr学习笔记合集(20101212)"的压缩包文件,其中包含了作者关于多种编程语言和相关技术的个人学习笔记。这些笔记涵盖了Python、PHP、Java、JavaScript和C这五种语言,以及可能涉及的各种框架和...
3. **数据操作**: 使用StorageDB,开发者可以像操作MongoDB一样执行数据操作,例如创建集合(collections)、插入文档(documents)、查询文档、更新和删除文档。例如,`db.collection('users').insertOne({name: '...
在这个"st-mongodb: MongoDB StudyCourseReference回购"中,我们可以预见到一系列关于MongoDB的学习资料,可能是教程、课程笔记或者实践指南。 首先,让我们关注JavaScript的标签。MongoDB的官方驱动程序通常使用...
在本笔记中,我们将深入探讨MongoDB的基础知识、Python编程接口(PyMongo)的使用,以及一些实用的代码示例。 首先,让我们了解MongoDB的基本概念。MongoDB采用文档型的数据模型,其中数据以JSON格式的文档存储。每...
1. **集合(Collections)**:类似于关系型数据库中的表,是MongoDB中存储数据的基本单元。 2. **文档(Documents)**:MongoDB中的数据以键值对的形式存储,类似JSON对象,称为文档。 3. **插入(Insert)**:向...
这可以通过Python的collections.Counter类或者pandas库中的value_counts()函数实现。 4. 文本向量化:将文本数据转换为数值形式,以便机器学习算法可以处理。常用的方法有词袋模型(Bag-of-Words)、TF-IDF(Term ...