MongoDB 认识ObjectId
官方文档:https://docs.mongodb.com/manual/reference/method/ObjectId/
现在我们有一个集合如下
db.class0.insertMany([{"name": "一年级一班","headmaster": "王老师"},{"name": "一年级二班","headmaster": "刘老师"},{"name": "一年级三班","headmaster": "李老师"}
]);
现在要根据id查询记录,觉得是不是很简单
db.class0.find({"_id": "61f366f11f0300003b001b54"
})
执行查询发现结果为空,怎么回事?在客户端看一下全部数据
发现_id是ObjectId(“XXXXXXXXXXXXX”),重新试一下
db.class0.find({"_id": ObjectId("61f366f11f0300003b001b54")
})
// 结果可以按预期查到
{ "_id" : ObjectId("61f366f11f0300003b001b54"), "name" : "一年级一班", "headmaster" : "王老师" }
ObjectId是个什么玩意?
# 介绍
ObjectId 一个js对象
ObjectId()可以生成一个24位的16进制唯一标识
12个字节 = 4个字节的时间戳 + 3个字节的机器码的散列值 + 2个字节的进程ID + 3个字节的自增数# 优势
时间戳确保不同秒生成不同的ObjectId
机器码的散列值确保了不同主机生成不同的ObjectId,确保主键在分布式中不造成冲突
进程id确保同一台机器下不同mongodb进程产生不同的ObjectId
自增数确保在同一秒内产生不同的ObjectId
总结:ObjectId解决了在分布式环境下高并发情况主键唯一性问题# 相关方法
ObjectId() 生成一个新的ObjectId
ObjectId("十六进制字符串") 将一个十六进制字符串转换成ObjectIdvar x = ObjectId();
x.toString(); ObjectId转十六进制字符串
x.getTimestamp(); 获取ObjectId的时间戳
MongoDB 认识ObjectId相关推荐
- MongoDB SpringBoot ObjectId序列化json为String
mongodb的ObjectId默认序列化为bean对象,如果需要转换为json字符对象,配置如下 @Configuration public class JacksonConfig implemen ...
- python中Mongodb的Objectid 实现
python中Mongodb的Objectid 实现 Mongodb 作为非关系型数据库,默认实现 了Objectid 作为索引,对数据进行排序. ojbectid 组成 在 ObjectId 类中, ...
- mongoDB之ObjectId
mongoDB之ObjectId 一.ObjectId介绍 我们在使用mongodb插入数据时,每个document中必须有一个_id字段,且可以是任意类型,但如果没有单独设置_id字段,mo ...
- php生成objectid,python根据时间生成mongodb的ObjectId的方法
本文实例讲述了python根据时间生成mongodb的ObjectId的方法.分享给大家供大家参考.具体分析如下: mongodb的_id为ObjectId类型,ObjectId内是包含时间戳信息的, ...
- 【知识小课堂】 mongodb 之 objectId
一.OBJECTID 因公司开发人员在使用MONGODB时,总遇到一些小问题.为了增加大家的mongodb 数据库知识. 决定每周进行一.两次的知识小课堂.这里把内容整理出来,上传到博客中.也算是自己 ...
- MongoDB的ObjectId生成原理
在分布式系统中,分布式 ID 有很多特殊的要求,其中两个要求 各个 ID 必须全局唯一,且 ID 能够趋势递增. mongo插入一条记录 db.xttblog.insert({"name&q ...
- 从根上理解MongoDB的ObjectId生成原理!
想写这篇文章好久了,一直抽不出时间.这两天端午节放假,我和娃都泡在图书馆,在他看书的空闲期,我拿出电脑写下了本文. 我们都知道,在分布式系统中,分布式 ID 有很多特殊的要求,其中之二就是要求各个 I ...
- python处理mongodb的ObjectId
主要思路是是ObjectId和str互转 MongDB->Python[ObjectId 2 Str] from bson.objectid import ObjectId a=ObjectId ...
- MongoDB中的_id和ObjectId
_id和ObjectId MongoDB中存储的文档必须有一个"_id"键.这个键的值可以是任何类型的,默认是个ObjectId对象. 在一个集合里面,每个集合都有唯一的" ...
最新文章
- Day 1 AR认知课 || AIRX三次方
- 鱼佬:从数据竞赛到工作!
- 刚出道的黑客搞瘫美国!他们一边搞钱一边捐款给慈善组织,还说俄国人不打俄国人...
- [YTU]_1055 (输入字符串以及输出)
- Python正则表达式-2
- MyEclipse 9.0 正式版公布新闻 下载
- 区块链BaaS云服务(16)天德链TDBC“智能合约”
- Intel Realsense D435 多摄像头配置 Multi-camera configurations (220)(官方测试的摄像头配置表【不同带宽下分辨率、帧率等】)
- arduino 勘智k210_如何评价嘉楠耘智的勘智K210芯片?
- swiper怎么在HTML引入JS文件,Swiper.js插件超简单实现轮播图
- mysql启动错误1.69,MySQL无法启动例一
- 抢占乡镇渠道 中国手机厂商比苹果有经验
- C#LeetCode刷题之#434-字符串中的单词数​​​​​​​(Number of Segments in a String)
- MICCAI 2019 :纪录、风向与学术思考
- Squid安装及运行控制_wuli大世界_新浪博客
- 国产计算机系统有哪些,国产电脑操作系统有哪些(华为鸿蒙系统笔记本电脑)...
- 如何确定一台电脑配置的高低
- 使用Jasypt对SpringBoot配置文件加密(数据源为SpringBoot默认的数据源HikariDataSource)
- 关于4次挥手时等待2MSL的问题
- 网络摄像机-ISP基础一
热门文章
- 没有version.sh,如何查看tomcat版本
- 读取EXCEL内容空格或连字符变成问号
- 利用EVEREST Corporate Edition网络统计硬件配置信息
- 体验 服务器正在维护升级中 给大,关于未收录SSR降临! 限时活动的相关说明
- 司法考试的心得与经验
- Blender:Lowpoly头部建模流程 第三部分(附blender源文件下载)
- 乡村振兴战略下传统村落文化旅游设计 | 年度书香,我们的村落,我们的文化,我们的旅游
- HTML5--地理定位与第三方工具百度地图的应用
- C++ 蓝桥杯之 字母图形
- 数学建模学习1.20——b站公开视频与微信公众号推文