文章目录

MongoDB 为 k-v 数据库,他们存储方式为 BSON,操作接口基本都是 JSON,查询,搜索都很方便。

例如 MySQL 里一个表,id 和 data,data 为这条记录的数据,数据为了扩展,例如不同的记录的 data 可能包含很多字段,且字段不一定相同,以后也会有不少类型的字段。这时我把这些不确定的字段 encode 成一个 XML 或者 JSON 或者 Protobuf 之类的数据流存到 data 里。

这么做记录的具体数据关联的详细数据扩展很灵活了。但是想搜索 data 里的各字段时,在 MySQL 数据库里就不那么方便了,基本要遍历。

这个时候将这个 data 备份一份到 MongoDB 里,就很方便了。MongoDB 里的每条记录为一个 key-value,value 即存储我们上边的 data。这时我们取 data 里的字段做条件查询是 MongoDB 直接支持的。

另外 MongoDB 支持自动切热备,自动分片等高级功能……

但是另一方面,这个东西出来的不久,现在还不敢将他作为持久化的 DB。上边的例子是 MySQL 里有份数据为生产环境的依赖数据,备份到 MongoDB 的数据只是为了查询。MongoDB 里数据出问题是没关系的。

文章目录