MySQL與MongoDB設計實例對比

 

MySQL與MongoDB設計實例對比

2011年06月15日14:06 來源:huoding 做者:老王 編輯: 胡銘婭 評論: 0

  若是使用MongoDB的話,應該如何存取數據呢?html

  若是使用MongoDB的話,雖然理論上能夠採用和MySQL同樣的設計方案,但那樣的話就顯得無趣了,沒有發揮出MongoDB做爲文檔型數據庫的優勢,實際上使用MongoDB的話,和MySQL相比,形象一點來講,能夠合二爲一:數據庫

 

  db.getCollection( " mobiles " ).ensureIndex({

" params.name " 1 ,

" params.value " 1

});

db.getCollection(
" mobiles " ).insert({

" _id " 1 ,

" name " " ME525 " ,

" brand " " 摩托羅拉 " ,

" params " : [

{
" name " " 待機時間 " " value " 200 },

{
" name " " 外觀設計 " " value " " 直板 " }

]

});

db.getCollection(
" mobiles " ).insert({

" _id " 2 ,

" name " " E7 " ,

" brand " " 諾基亞 " ,

" params " : [

{
" name " " 待機時間 " " value " 500 },

{
" name " " 外觀設計 " " value " " 滑蓋 " }

]

});

  若是想查詢待機時間大於100小時,而且外觀設計是直板的手機,須要按照以下方式查詢:ide

 

  db.getCollection( " mobiles " ).find({

" params " : {

$all: [

{$elemMatch: {
" name " " 待機時間 " " value " : {$gt:  100 }}},

{$elemMatch: {
" name " " 外觀設計 " " value " " 直板 " }}

]

}

});

  注:查詢中用到的$all,$elemMatch等高級用法的詳細介紹請參考官方文檔中相關說明。spa

  MySQL須要多個表,屢次查詢才能搞定的問題,MongoDB只須要一個表,一次查詢就能搞定,對比完成,相對MySQL而言,MongoDB顯得更勝一籌,至少本例如此設計

相關文章
相關標籤/搜索