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里数据出问题是没关系的。