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里數據出問題是沒關系的。