MongoDB,对象性能的泛型关系

时间:2013-12-11 10:32:35

标签: performance mongodb mongoose relationships

首先,我是数据库设计和新手的新手。 MongoDB的。

我有这样的数据库结构,

title
description
[generic_object]
date_created
date_updated
...

generic_object指的是不同的内容类型,如:

food_venue: {lat: long:}

OR

drink_size : 1
drink_brand : "guiness"
drink_type : 3

我试图告诉通用对象有不同的类型/作业。

我有这样的想法,但我不认为这是最好的方式

title
description
type : food or drink
food : {food_id: ... $ref: food model}
drink : {drink_id: ... $ref: drink model}
...

如果我添加一个饮料对象,食物对象将变为空或空白。

在MongoDB(或MongooseJS)中设计此数据库的最佳性能方法是什么?

1 个答案:

答案 0 :(得分:0)

MongoDB是一个“无模式”数据库,因此您存储的文档可能不同。在您的通用对象中,您可以简单地保存您想要的任何子文档(食物或饮料)。无论如何,为方便起见,您应该在数据库中有一个结构,因此您可以添加一些额外的字段。在你的情况下:

{
  title:"title",
  description:"description",
  generic:
  {
    type:"food",
    field1:"field1",
    field2:"field2",
    field4:"field3",
  }
}

{
  title:"title2",
  description:"description2",
  generic:
  {
    type:"drink",
    otherField1:"field1",
    otherField2:"field2",
  }
}

MongoDB每个文档的限制为16MB,因此如果您非常确定不会使用这么大的空间,则可以将所有信息嵌入到一个文档中。