5

我正在尝试计划我的 api,例如:

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

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

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

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

2) 多个集合 - 将猫和狗都存储在单独的集合中,这将使数据存储更加合乎逻辑,但是当获取“/animals”的数据时将需要多次查询和连接该数据。

有没有我错过的其他选择或首选方法?

谢谢

4

2 回答 2

1

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

对于您的特定情况,如果每个模型的独特属性不是那么大,则使用方式 1将所有数据存储在单个集合中并轻松查询。

否则,如果您的模型有点重并且有很多属性将它们分成不同的集合并通过它们各自的模型查询它们。这似乎需要做更多的工作,但至少会给您更多的抽象和灵活性来操作重模型。意思是选择选项 2

于 2012-12-02T09:53:34.510 回答
0

mongodb 的优点在于它是无模式的。听起来这正是您所需要的。我会考虑只使用普通的node-mongodb-native,并将所有动物存储在一个集合中。

于 2012-12-02T08:58:10.423 回答