首先,我是数据库设计和新手的新手。 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)中设计此数据库的最佳性能方法是什么?
答案 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,因此如果您非常确定不会使用这么大的空间,则可以将所有信息嵌入到一个文档中。