mongoose – 使用单个集合的多个模式

我试图计划我的api,例如:

/animals // returns all animals /animals/dogs // returns all dogs /animals/cats // returns all cats /animals/dogs/:id // returns dog 

所以,我有“猫”和“狗”的单独模型,因为它们将包含独特的属性,但都使用“动物”模式作为基础插件。

所以我的问题是关于在哪里存储数据,我的select是:

1)单一收集 – 在一个集合中存储猫和狗,这将使得通过单个查询获得“/动物”的数据相对容易

2)多个集合 – 将猫和狗存储在单独的集合中,这将使得数据存储更加合理,但是当获取“/动物”的数据将需要多个查询和数据串联时。

还有其他的select,我错过了,或者一个首选的方法?

谢谢

mongodb的好处在于它是无模式的。 听起来像这正是你所需要的。 我会考虑使用简单的节点 – mongodb-native ,并将所有动物存储在一个集合中。

您提到的选项是针对您的问题最合适的方法。

对于您的具体情况,如果每个模型的独特属性不是那么大的方式1将所有的数据存储在一个集合和查询容易。

否则,如果你的模型有点沉重,并且有很多属性将它们分离到不同的集合中,并通过它们各自的模型来查询它们。这似乎还有更多的工作要做,但至less会给你更多的抽象和灵活性来操纵重型模型。 含义与选项2一起