Mongdb适用场景以及特性

本文深入探讨BSON数据格式,一种用于MongoDB的数据存储和网络传输方式,介绍其数据类型与语法,以及MongoDB的固定集合、地理空间索引等特性,同时指出其在事务和复杂查询方面的局限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BSON(/ˈbiːsən/)是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。

数据类型与语法

BSON文档(对象)由一个有序的元素列表构成。每个元素由一个字段名、一个类型和一个值组成。字段名为字符串。类型包括:

  • string

  • integer(32或64位)

  • double(64位IEEE 754浮点数)

  • decimal128(128位IEEE 754-2008浮点数;Binary Integer Decimal变体),适合作为任意精度为34个十进制数字的数字载体,最大值近似10

  • date(整数,自UNIX时间的毫秒数)

  • byte array(二进制数组)

  • 布尔(true或false)

  • null

  • BSON对象

  • BSON数组

  • JavaScript代码

  • MD5二进制数据

  • 正则表达式Perl兼容的正则表达式,即PCRE,版本8.41,含UTF-8支持;与Python不完全兼容)

BSON的类型名义上是JSON类型的一个超集(JSON没有date或字节数组类型),但一个例外是没有像JSON那样的通用“数字”(number)类型。

效率:与JSON相比,BSON着眼于提高存储和扫描效率。BSON文档中的大型元素以长度字段为前缀以便于扫描。在某些情况下,由于长度前缀和显式数组索引的存在,BSON使用的空间会多于JSON。

相比其他关系型数据库,MongoDB引入了”固定集合”的概念。所谓固定集合,就是指整个集合的大小是预先定义并固定的,内部就是一个循环队列,假如集合满了,MongoDB后台会自动去清理旧数据,并且由于每次都是写入固定空间,可大大地提升写入速度。这个特性就非常适用于日志型应用,不用再去纠结日志疯狂增长的清理措施和写入效率问题。另外需要更加精细的淘汰策略设置,还可以使用TTL索引(time-to-liveindex),即具有生命周期的索引,它允许为每条记录设置一个过期时间,当某条记录达到它的设置条件时可被自动删除。

在某些LBS的应用中,使用MongoDB也有非常巨大的优势。MongoDB支持多种类型的地理空间索引,支持多种不同类型的地理空间查询,比如intersection,within和nearness等。

MongoDB不适用的应用场景

在某些场景下,MongoDB作为一个非关系型数据库有其局限性。MongoDB不支持事务操作,所以需要用到事务的应用建议不用MongoDB,另外MongoDB目前不支持join操作,需要复杂查询的应用也不建议使用MongoDB。

关于云方面的可以参考 MongoDB的特点和适用场景

安装配置方面的可以参考 用户权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值