MongoDB為k-v數(shù)據(jù)庫,他們存儲方式為BSON,操作接口基本都是JSON,查詢,搜索都很方便。
例如mysql里一個表,id和data,data為這條記錄的數(shù)據(jù),數(shù)據(jù)為了擴展,例如不同的記錄的data可能包含很多字段,且字段不一定相同,以后也會有不少類型的字段。這時我把這些不確定的字段encode成一個xml或者json或者protobuf之類的數(shù)據(jù)流存到data里。
這么做記錄的具體數(shù)據(jù)關聯(lián)的詳細數(shù)據(jù)擴展很靈活了。但是想搜索data里的各字段時,在mysql數(shù)據(jù)庫里就不那么方便了,基本要遍歷。
這個時候將這個data備份一份到MongoDB里,就很方便了。MongoDB里的每條記錄為一個key-value,value即存儲我們上邊的data。這時我們取data里的字段做條件查詢是MongoDB直接支持的。
另外MongoDB支持自動切熱備,自動分片等高級功能……
但是另一方面,這個東西出來的不久,現(xiàn)在還不敢將他作為持久化的DB。上邊的例子是mysql里有份數(shù)據(jù)為生產環(huán)境的依賴數(shù)據(jù),備份到MongoDB的數(shù)據(jù)只是為了查詢。MongoDB里數(shù)據(jù)出問題是沒關系的。