首页
移动开发
物联网
服务端
编程语言
企业开发
数据库
业界资讯
其他
搜索
MongoDB 中(BsonDocument & Document & Bson)关系详解
企业开发
2023-05-04 23:33:01
阅读次数: 0
MongoDB 中(BsonDocument & Document & Bson)关系详解
类图:
Java Driver 中有这么几个类和接口来表示Bson文档:
«Interface»
Bson
任何代表BSON文档的类,
不管是driver中包含的还是第三方的包,都要实现Bson这个接口,
这样就可以在高阶API中任何需要 BSON Document 的地方使用,
因此可以根据给定的需要互换使用.
«Interface»
Map
BsonDocument
虽然对于用户来说,一般使用驱动的高阶API,不使用这个类,
但是BsonDocument类对于驱动程序在内部管理文档至关重要.
BsonDocument类可以表示任何具有安全类型的复杂的动态结构化文档.
BsonDocument实现了类型安全的Map接口,
所以即便是int,String,List这种内置类型,仍然需要被包裹在BsonValue的子类中.
要看BsonValue的子类详情,可以参阅 BsonValue API 文档.
Document
大多数的应用程序会用Document类来替代BsonDocument类,
Document类和BsonDocument类相似,也可以表示任何复杂的动态结构化文档,
但是对于类型要求不像BsonDocument那么严格.
Document实现的是Map接口,所以的对类型的要求更宽泛.
«Interface»
BSONObject
«Interface»
DBObject
DBObject接口类似Document
不建议新的应用程序再使用它,但是从的2.X系列的驱动升级的应用程序可能继续使用
因为他也将BSON的值表示为Object,但是它有一些不可能克服的缺点:
1. 它是一个接口而不是一个类,所以它的API不能在不破坏二进制兼容性的情况下被扩展.
2. 它并没有真正实现Map接口
3. 它是一个接口,所以必须需要一个单独的具体类 BasicDBObject 去实现它.
总结:
BsonDocument 和 Document 是类
BsonDocument 更适用于底层(内部)的 API,并且对于值类型的划分更细更严格
Document 对值类型的划分更宽泛,更适合高阶的 API
DBObject 是接口,需要一个具体的类 BasicDBObject 去实现它
猜你喜欢
转载自
blog.csdn.net/wjw465150/article/details/128730562
MongoDB 中(BsonDocument & Document & Bson)关系详解
MongoDB中Bson文档的创建
Jquery中的$(document).ready()详解
Jquery中的$(document).ready()详解 “$(function() {})”与“$(document).ready(function(){})”的区别
MongoDB可视化compass 连接数据库失败Invalid UTF-8 string in BSON document
MongoDB的学习与应用四:MongoDB中的BSON以及CRUD
Spring Data MongoDB : Update document
Java MongoDB : Delete document(译)
Java MongoDB : Insert a document(译)
Java MongoDB : Query document(译)
Java MongoDB : Update document(译)
MongoDB embedded document 和 arrays
iOS 中JavaScript交互 Document对象详解
mongodb document使用的数据结构中存在List结构导致查询速度异常缓慢
spring data mongodb运行时指定@Document中collection值
mongodb同一个document中两个字段比较查询
NOSQL 之 Document Database 之 MongoDB
Mongodb初体验之Document、Object
document与Object的关系
mongodb导入bson数据
MongoDB-BSON
springboot 1.5.2升级2.0.4 mongodb中QueryBuilder中DBObject被弃用,改为Document构造及解决方式
详解jquery插件中;(function ( $, window, document, undefined )的作用
javaScript document对象详解
lucene的Document对象的详解
document文档流详解
JavaScript中Document对象
jquery中的$(document).ready()
JS中的Document
mongodb中的aggregate() 方法详解
今日推荐
周排行
Leetcode简单题61~80
解决zookeeper磁盘IO高的问题
多线程相关方法详解
Maven-setting.xml文件详解
Maven 项目的 classpath 理解
渊亭科技大数据笔试题
配置JVM内存分配
计算机网络个人学习笔记 (三)网络层 :第三部分 连载
js中两个等号(==)和三个等号(===)的区别
用C程序自动打开电脑上的程序
每日归档
更多
2024-09-18(0)
2024-09-17(0)
2024-09-16(0)
2024-09-15(0)
2024-09-14(0)
2024-09-13(0)
2024-09-12(0)
2024-09-11(0)
2024-09-10(0)
2024-09-09(0)