• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

mongodb中的_id包含的信息

OC/C/C++ 水墨上仙 1649次浏览

无论你愿不愿意,每条记录都会被自动添加一个类型为ObjectId的唯一标识_id,下面的文章说明了mongodb中的_id包含的所有信息

无论你愿不愿意,每条记录都会被自动添加一个类型为ObjectId的唯一标识_id

据说这个类型可以自定义??不过目前还没看到那部分文档

ObjectId其表现形式类似于4e48e28216989f1c60358afa

其官方解释为

这是一个12字节的数据

01234567891011timemachinepidinc

前四位为unix下的时间戳,4、5、6为机械码,7、8为进程id,最后3位为自增量(或随即值)

这意味着靠_id,就可以得出添加时间、是否为同一机器添加、进程号这类信息,同样意味着它是可以按照时间排序的,可以利用做非skip分页

&nbsp

一下就是一个c#中通过_id获得添加时间的例子:


public DateTime AddDate {
    get {
        return new DateTime(1970, 1, 1)
            .Add(new TimeSpan(new ObjectId(Id).Timestamp * 10000000L));
    }
}
注:unix的时间戳标示一段从1970年到现在的时间差


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明mongodb中的_id包含的信息
喜欢 (0)
加载中……