mongodb-bson

json和bson

json(JavaScript Object Notation, JS 对象标记)使用人类易读的文本形式标记来对象,其优势体现在易读,劣势在于不易于在json上做操作(CRUD)。bson作为json的二进制编码序列,其不仅仅是简单的使用字符集(如utf-8)编码json,而是使用了一套自己的编码规范去编码json,使得编码后的二进制序列易于操作(但不易读)。

example

{
    "0":"CloudComputing",
    "1":"NoSQL",
    "2":"BigData"
}

下图将该json转化为bson,首先是一个int32数据,表示了document的长度,然后是e_list(element_list),真正的document数据,最后是\x00结束符。

BsonDocument

mongodb使用bson存储一条记录(即document,相当于关系数据库中的行),java客户端中可以使用BsonDocument和Document来表示一条记录。

getCollection时,默认得到的Collection的元素类型是Document,可以向第二个参数传入BsonDocument.class,从而得到元素类型为BsonDocument的Collection。这里的codecRegistry持有client实例中注册过的所有codec,通过codec就可以将bson解析为对应的java对象,比如DocumentCodec、BsonDocumentCodec、BsonValueCodec、BsonArray等。

 1 //MongoDatabase的实现
 2     @Override
 3     public MongoCollection<Document> getCollection(final String collectionName) {
 4         return getCollection(collectionName, Document.class);
 5     }
 6
 7     @Override
 8     public <TDocument> MongoCollection<TDocument> getCollection(final String collectionName, final Class<TDocument> documentClass) {
 9         return new MongoCollectionImpl<TDocument>(new MongoNamespace(name, collectionName), documentClass, codecRegistry, readPreference,
10                                                   writeConcern, readConcern, executor);
11     }

参考:http://www.cnblogs.com/zeliliu/archive/2012/10/01/2708330.html

时间: 2024-10-12 01:44:25

mongodb-bson的相关文章

MongoDB 之C#实践

官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads.下载后,还提供了一个酷似msdn的帮助文档. samus驱动:https://github.com/samus/mongodb-csharp/downloads. using System; using System.Collections.Generic; using System.Linq; using MongoDB.Driver; using MongoDB.Bso

MongoDB学习笔记~大叔框架实体更新支持N层嵌套~递归递归我爱你!

回到目录 递归递归我爱你!保要你想做,就一定能成功! 从一到二,从二到三,它是容易的,也是没什么搞高的,或者说,它是一种流水线的方式,而从三到十,它注定要有一个质的突破,否则,它会把你累死,代码写的让你自己都觉得想吐!有时,我们是被逼出来的,对于一种功能的实现,我们有时需要有从三到十的态度…… 回归回实例,在mongodb中实体可以嵌套,这在C#里叫做复杂属性,即类中也有类级的属性,这在面向对象里叫做“组合”,它经常在日常开发环境中见到,大家都耳熟能详了,呵呵,而在mongodb里,如果希望对N

.NET Core也可以使用MongoDB了

可能是由于.NET Core还不是正式版的缘故吧,MongoDB的官方Driver(http://mongodb.github.io/mongo-csharp-driver/)一直不支持.NET Core,这给想在.NET Core上尝试MongoDB带来了不便,本人就是其中之一 :) 于是Fork了官方的source code,没有太多的修改,就可以运行了,于是打包发布,不敢独享! 可以在Nuget上搜 ”RaisingStudio.MongoDB.Driver“ 找到这个包,也可以直接用Pa

MongoDB学习比较-07 C#驱动操作MongoDB

下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/releases 直接下载msi进行安装或zip压缩包.不管哪种方式,其主要的目的都是获取两个dll文件:MongoDB.Bson.dll.MongoDB.Driver.dll.这是在程序中需要引用的两个类库文件. .NET版本要求 目前最新版的C#驱动是1.9.2,是在 .NET3.5的基础上构建的,所以

MongoDB的C#驱动基本使用

MongoDB的官方C#驱动可以通过这个链接得到.链接提供了.msi和.zip两种方式获取驱动dll文件. 通过这篇文章来介绍C#驱动的基本数据库连接,增删改查操作. 在使用C#驱动的时候,要在工程中添加"MongoDB.Bson.dll"和"MongoDB.Driver.dll"的引用.同时要在代码中加入下面两个using语句. using MongoDB.Bson; using MongoDB.Driver; 数据库连接 要建立数据库连接,就一定要知道服务器的地

.NET下对MongoDB进行操作(二)

这次说下关于利用C#driver,对mongoDB进行简单的查询. 我们可以利用Query类中的静态方法来创建一系列query,达到查询的目的. Query在using MongoDB.Driver.Builders这一名称空间中. 1. 单一条件查询,可以参考如下代码: var query = Query.EQ("ColName", "Value"); foreach (BsonDocument doc in collection.Find(query)) { D

dotnet core 使用 MongoDB 进行高性能Nosql数据库操作

好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好景象. 不在绑定Windows, 相信众位dotneter的春天就要来了 废话不多说, 早就对dotnet core 跃跃欲试, 手头一个新项目也正计划使用dotnet core来开发. 正好自己做做调研, 就与大家分享一点使用MongoDB的经验. 首先, 安装VS Code, 并安装C#插件,

mongodb 查询的用法

想要在C#中使用MongoDB,首先得要有个MongoDB支持的C#版的驱动.C#版的驱动貌似有很多种,如官方提供的samus. 实现思路大都类似.这里我们用官方提供的mongo-csharp-driver : 下载地址:http://github.com/mongodb/mongo-csharp-driver/downloads 解压之后得到两个dll: MongoDB.Driver.dll:顾名思义,驱动程序 MongoDB.Bson.dll:序列化.Json相关 然后在我们的程序中引用这两

使用MongoDB作为后台数据库的尝试

MongoDB作为一个阶层型数据库,在很短的时间里面是不可能被大面积推广使用的, 本文作为一个实验性的课题,探讨一下MongoDB作为网站数据库的可能性. 1.MongoDB作为代替关系型数据库的可能性. 2.MongoDB作为代替文件服务器的可能性. 通过探讨来加强对于MongoDB的认识 环境准备 技术选型 1.由于是验证性质的课题,这里没有使用MVC5/6.如果有人对MVC6有兴趣,可以另开一个课题讨论.这里使用的是传统的WebForm. 2.使用MongoDB最新版本作为数据库 3.Mo

MongoDB的TruncationException异常解决方法

近期由于DB4O的一些无解的BUG,导致现行的项目查询效率底下,于是愤而迁移到了MongoDB. MongoDB虽然比DB4O的用户要多一些,但是文档依然极度匮乏,遇到问题不是那么容易就能搜到解决办法,在此分享一个遇到的比较要命的异常问题的修正办法. 异常情况描述 我的项目使用的是C#版官方驱动,运转一直良好,今天在访问期间突然就出现了这样的异常,并且无论怎么刷新都无法恢复: MongoDB.Bson.TruncationException: Truncation resulted in dat