C# 生成 MongoDB 中的 ObjectId
ObjectId介绍
在MongoDB中,文档(document)在集合(collection)中的存储需要一个唯一的_id字段作为主键。这个_id默认使用ObjectId来定义,因为ObjectId定义的足够短小,并尽最大可能的保持唯一性,同时能被快速的生成。
ObjectId 是一个 12 Bytes 的 BSON 类型,其包含:
- 4 Bytes 自纪元时间开始的秒数
- 3 Bytes 机器描述符
- 2 Bytes 进程ID
- 3 Bytes 随机数
从定义可以看出,在同一秒内,在不同的机器上相同进程ID条件下,非常有可能生成相同的ObjectId。
同时可以根据定义判断出,在给定条件下,ObjectId本身即可描述生成的时间顺序
ObjectId的存储使用Byte数组,而其展现需将Byte数组转换成字符串进行显示,所以通常我们看到的ObjectId都类似于:
ObjectId("507f191e810c19729de860ea")
C#定义ObjectId类
C#实现ObjectId的生成器
使用举例
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.ForegroundColor = ConsoleColor.Red; 6 7 ObjectId emptyOid = ObjectId.Empty; 8 Console.WriteLine(emptyOid); 9 10 Console.WriteLine(); 11 Console.ForegroundColor = ConsoleColor.Green; 12 13 for (int i = 0; i < 10; i++) 14 { 15 ObjectId oid = ObjectId.NewObjectId(); 16 Console.WriteLine(oid); 17 } 18 19 Console.WriteLine(); 20 Console.ForegroundColor = ConsoleColor.Blue; 21 22 ObjectId existingOid; 23 ObjectId.TryParse("507f191e810c19729de860ea", out existingOid); 24 Console.WriteLine(existingOid); 25 26 Console.ReadKey(); 27 } 28 }
本文转自匠心十年博客园博客,原文链接:http://www.cnblogs.com/gaochundong/archive/2013/04/24/csharp_generate_mongodb_objectid.html,如需转载请自行联系原作者
C# 生成 MongoDB 中的 ObjectId相关推荐
- MongoDB中_id(ObjectId)生成
MongoDB 中我们经常会接触到一个自动生成的字段:"_id",类型为ObjectId. 之前我们使用MySQL等关系型数据库时,主键都是设置成自增的.但在分布式环境下,这种方法 ...
- mysql objectid_在mysql中使用MongoDB中的ObjectId
其实很简单.您只需要使用 mongodb 像平常一样打包和声明实体. 首先,安装mongodb依赖项: yarn add mongodb yarn add @types/mongodb 然后,声明你的 ...
- MongoDB中的_id和ObjectId
_id和ObjectId MongoDB中存储的文档必须有一个"_id"键.这个键的值可以是任何类型的,默认是个ObjectId对象. 在一个集合里面,每个集合都有唯一的" ...
- mysql objectid_MongoDB中_id(ObjectId)生成
MongoDB中我们经常会接触到一个自动生成的字段:"_id",类型为ObjectId. 之前我们使用MySQL等关系型数据库时,主键都是设置成自增的.但在分布式环境下,这种方法就 ...
- mongoDb中_id和ObjectId详细说明
ObjectId使用12字节的存储空间,是一个由24个16进制数字组成的字符串(每个字节可以存储两个16进制数字). 说明: 12字节(每个字节用2个16位的组成), 因此,总共24个16位的数字. ...
- php生成objectid,python根据时间生成mongodb的ObjectId的方法
本文实例讲述了python根据时间生成mongodb的ObjectId的方法.分享给大家供大家参考.具体分析如下: mongodb的_id为ObjectId类型,ObjectId内是包含时间戳信息的, ...
- mongoDB中的数据类型
Date mongo shell中提供各式各样的返回日期类型的方法,例如字符串类型或者Date对象类型: Date() 返回当前的日期字符串: new Date() 返回使用ISODate()包装的D ...
- MongoDB中的索引操作
本文来说下MongoDB中的索引操作 文章目录 概述 createIndex() 方法 语法 createIndex() 可选参数 索引操作 测试实例 本文小结 概述 索引通常能够极大的提高查询的效率 ...
- 如何使用MongoDB Go驱动程序在MongoDB中使用Go
The author selected the Free Software Foundation to receive a donation as part of the Write for DOna ...
最新文章
- 你可能需要了解一下的中台
- 为什么当代人越来越不快乐?
- leetcode 第 216 场周赛 整理
- 标记分布学习与标记增强
- Android 那些年,处理getActivity()为null的日子
- 夺命雷公狗---Smarty NO:19 html_options函数
- TCP/IP及内核参数优化调优(转)
- 使用Github官方提供的gitignore过滤Git提交的文件
- linux磁盘管fdisk,Linux 磁盘分区工具和挂载,fdisk管理分区详解
- 玩Mega8 智能充电器-12. 终于实现-dV检测(转)
- 【浅墨著作】《逐梦旅程:Windows游戏编程之从零开始》勘误配套源代码下载...
- IOCCC大赛代码分析笔记
- requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题
- python中get函数是什么意思_详解python中get函数的用法(附代码)_后端开发
- 云顶之弈机器人怎么拉人_云顶之弈机器人阵容怎么玩_云顶之弈机器人阵容玩法攻略_玩游戏网...
- 最全面的常用Delphi第三方控件汇总—报表、图表、界面、数据库等
- sourcetree 中文版
- 微机原理——基础知识及计算机基本组成
- ife2015spring-task0001笔记总结
- 计算dpi公式及各主流分辨率介绍
热门文章
- 基于eclipse swt做java浏览器内嵌等功能
- html5 子标题栏,HTML5 建构主义标题栏页面模板
- b类 蚂蚁金服_【面经】超硬核面经,已拿蚂蚁金服Offer!!
- git idea 本地历史版本回滚_如何为IDEA项目创建GitHub存储库和本地Git存储库
- mysql表的视图怎么建立_MySQL如何创建视图
- javascript乘法和加法_Web前端:JavaScript中的NaN是什么?
- android 判断滑动方向,H5触摸事件判断滑动方向
- (4) 百度2011研发工程师笔试卷
- Node.js 极简笔记
- XX System Test Plan