2012-12-17 85 views
0

我剛開始學習MongoDB。MongoDB靈活的數據結構

我選擇它作爲我當前的項目,因爲我需要基於用戶輸入的相當靈活的模式。

在MySQL中我有一個表來存儲看起來像

ID  Key   Value 
-------------------------- 
1  Color  Black 
2  Color  White 
3  Lace_length 12 

我認爲這是相當典型的存儲用戶輸入的可能是任何東西

我的問題是什麼數據的用戶輸入的數據是最好的方式來表示此MongoDB中

我的想法是這樣的

{ _id: ObjectId{} , 
    options: [ 
     { colors: [ { black, white , ... } ] , 

      lace_length: [ { 12, 13 , 14 } ] } 
     ] 
} 

這似乎是一個合理的方式來存儲基於各種用戶輸入的靈活的'列名'或有沒有更好的方法來處理?

謝謝

回答

1

我不能說我完全理解你的SQL例子。有沒有外鍵,對應於對象ID的東西?

如果你的選擇是多到很多,我會設置它是這樣的:

{ _id: ObjectId() , 
    options: { 
     colors: [ black, white , ... ], 
     lace_length: [ 12, 13, 14 ] 
    } 
} 

如果某些選項只有一個值,則是這樣的:

{ _id: ObjectId() , 
    options: { 
     colors: [ black, white , ... ], 
     lace_length: [ 12, 13, 14 ], 
     upc: 1234567890 
    } 
} 
+0

是有是與另一個表/集合中的id相對應的東西。謝謝,看起來我正處在正確的軌道上。 – bonez