我正在搞乱MongoDB,我想知道什么是最好的解决方案:我有一个动物集合,每只动物都有一个名字和类型。
但对于前端需求,每种类型都有一种颜色。
所以有两种可能性:
第一个:
Animal
.animal 1
name: Simba
race: lion
type:
name: felin
color: blue
.animal 2
name: Franck
race: turtle
type:
name: turtle
color: red
.animal 3
name: Francis
race: turtle
type:
name: turtle
color: red
第二:
Animal
.animal 1
name: Simba
race: lion
type: (id of type collection)
Type
.type 1
name: felin
color: blue
.type 2
name: turtle
color: red
那么,我应该复制数据吗?或者我应该创建一个新的集合?
谢谢你的时间!
答案 0 :(得分:0)
我更喜欢第一种方法,因为类型键只有2个子键。当我有更多的键时,我更喜欢新的集合,因为它涉及数据库操作。
答案 1 :(得分:0)
如果您的type
文档不会经常更改,并且仅限于其中的2-3个属性,则第一种方法会更好。
但是,如果您计划在type
文档中添加更多属性,则应考虑创建新集合并将type-id
存储在animals
集合中。
此外,如果您的type
文档将来会频繁更改,您不希望更新animals
中包含type
的所有记录,而不是您希望仅在1个地方(type
集合)更改它。