- Mongo有多种类型的collection, 默认的是随着document 数目的增多自动增大; 还有一些collection被称为capped collection, 只能包含固定数目的document, 当向里面添加document时, 最老的文档就会被新加的文档替换。
- 每个mongo collection都有唯一的名字,名字可以包含数字,letter和下划线,但$符不能用,是mongo保留字符。Collection的名字的最大允许长度是128,.
-
每个Mongo数据库默认最多允许24000个命名空间,每个collection至少需要两个命名空间:一个是collection自身,另一个是默认创建的第一个index. 也就是说,一个数据库最多可以允许12000个collection,这还是在每个collection只有一个索引的情况下。
24000的限制可以通过执行mongod的时候通过提供nssize参数来更改。
- Mongo中的字段类型如下:
类型 |
说明 |
例子 |
string |
{Country: "China"} |
|
Integer(32b or 64b) |
{Rank:1} |
|
BOOLEAN |
TRUE or FALSE |
|
Double |
存放浮点数 |
|
Min/Max keys |
分别用来将一个值和最小/最大的BSON元素进行比较 |
|
Arrays |
["aa","bb"] |
|
Timestamp |
用来存储时间戳。用来记录一个document创建或者修改的信息的时候很方便。 |
|
Object |
用来存储embedded document. |
|
Null |
用来表示Null值。 |
|
Date |
用UNIX时间格式(POSIX时间)来存储当前日期或者时间 |
|
Object ID |
用来存储document的ID |
|
Binary data |
用来存储binary data. |
|
Regular express |
存储正则表达式 |
|
JavaScript Code |
用来存储Javascript代码 |
最后五种数据类型是非JSON数据类型,是BSON允许你用的特殊数据类型。在后面,将学到如何用$type操作符来鉴别你的数据类型。
-
用MongoDB, 尽可能把能放在一起的信息都放在一个文档里,这样存取都非常快,因为它们在磁盘上是放在一起的。
当你的应用程序是给多个用户用的时候,Good practise是把每个用户以及他们添加的数据分别放在不同的collection中,这个是与关系型数据库不同的地方。 Mongo允许你用两种方式在Collection之间创建引用:手动方式和自动方式。自动方式使用DBRef, 它在一个collection从给一个文档切换到下一个文档时提供了很大的灵活性。
-
Mongo中的ObjectId是个12位的值:包含三位时间戳(从epoch开始的秒数),3位机器id, 3位进程id, 3位计数器。
要创建一个ObjectId,有两个选择:一个是用Mongo命令行调用ObjectId()命令来创建一个 ObjectId,另一个可以用ObjectId(string)来用你自己的值来创建。
(The Definitive Guide to MongoDB)