MySQL與MongoDB設計實例對比

 

MySQL與MongoDB設計實例對比

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

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

  如果使用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小時,並且外觀設計是直板的手機,需要按照如下方式查詢:

 

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

"params": {

$all: [

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

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

]

}

});

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章