标签:不同 mongodb 容器 索引 需求 类型 唯一性 private base
MongoDB是一个跨平台,面向文档的数据库。MongoDB创建的数据库可以实现高可用性,高性能,并且能够轻松拓展。 MongodbDB的运行方式主要给予两个概念:集合(collection)和文档(document)
数据库就是集合的实际容器
集合就是一组MongoDB文档,相当于关系型数据库的表。
文档就是一组键-值对,类似于JSON对象。文档有着动态的模式,这意味着同一集合内的文档不需要具有同样的字段或结构。
关系型数据库(mysql)  | MongoDB  | 
数据库  | 数据库  | 
表  | 集合(collection)  | 
行  | 文档(document)  | 
列  | 字段  | 
表Join  | 内嵌文档  | 
主键  | 主键(ObjectId)  | 
自动主键(ObjectId):ObjectId是一个24位的字符串,由一组十六进制的字符组成,每个字节两位的十六进制数字,总共用了12字节的存储空间。保障了数据库文档的唯一性!
官方针对ObjectId的规范
		
private static readonly int __staticMachine = (GetMachineHash() + GetAppDomainId()) & 0x00ffffff; private static readonly short __staticPid = GetPid(); private static int __staticIncrement = (new Random()).Next(); ? // public static methods /// <summary> /// Generates a new ObjectId with a unique value. /// </summary> /// <returns>An ObjectId.</returns> public static ObjectId GenerateNewId() { ????return GenerateNewId(GetTimestampFromDateTime(DateTime.UtcNow)); } ? /// <summary> /// Generates a new ObjectId with a unique value (with the timestamp component based on a given DateTime). /// </summary> /// <param name="timestamp">The timestamp component (expressed as a DateTime).</param> /// <returns>An ObjectId.</returns> public static ObjectId GenerateNewId(DateTime timestamp) { ????return GenerateNewId(GetTimestampFromDateTime(timestamp)); } ? /// <summary> /// Generates a new ObjectId with a unique value (with the given timestamp). /// </summary> /// <param name="timestamp">The timestamp component.</param> /// <returns>An ObjectId.</returns> public static ObjectId GenerateNewId(int timestamp) { ????int increment = Interlocked.Increment(ref __staticIncrement) & 0x00ffffff; // only use low order 3 bytes ????return new ObjectId(timestamp, __staticMachine, __staticPid, increment); }  | 
?
类型  | 描述  | 示例  | 
MinKey  | BSON包括一个特殊类型,表示可能的最小值。  | mongodb shell不支持  | 
Null  | 用于创建空值  | {"Key":null}  | 
Integer  | 整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。  | {"Key":1}  | 
Double  | 双精度浮点值。用于存储浮点值  | {"Key":1.0}  | 
Symbol  | 符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。  | ? | 
String  | 字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的  | {"Key":"stringdata"}  | 
Object  | 用于内嵌文档  | {"Key":{"A":1,"B":"string"}}  | 
Array  | 用于将数组或列表或多个值存储为一个键  | {"Key":[1,2,3]}  | 
BinData  | 二进制数据。用于存储二进制数据  | mongodb shell中无法使用  | 
ObjectId  | 对象id是文档的12字节的唯一 ID,  | {"Key" :ObjectId() }  | 
Boolean  | 布尔值。用于存储布尔值(真/假)。  | {"Key":false}  | 
Date  | 日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。  | {"Key" : new Date()}  | 
Timestamp  | 时间戳。记录文档修改或添加的具体时间。  | {"Key":new Timestamp()}  | 
Regular Expression  | 正则表达式类型。用于存储正则表达式  | 采用JavaScript的正则表达式语法:{"Key":/[0-9]{1,2}/}  | 
MaxKey  | BSON包括一个特殊类型,表示可能的最大值。  | mongodb shell不支持  | 
?
标签:不同 mongodb 容器 索引 需求 类型 唯一性 private base
原文地址:http://www.cnblogs.com/AlvinLee/p/6050267.html