MongoDB灵活的数据结构

时间:2012-12-17 21:55:12

标签: mongodb schema nosql

我刚开始学习Mongo DB。

我选择它作为我当前的项目,因为我需要一个基于用户输入的相当灵活的架构。

在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 个答案:

答案 0 :(得分: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
  }
}