5

たとえば、APIを計画しようとしています:

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

したがって、「猫」と「犬」の両方に固有のプロパティが含まれるため、別々のモデルがありますが、どちらも基本プラグインとして「動物」スキーマを使用します。

だから私の質問は、データをどこに保存するかについてです。私のオプションは次のとおりです。

1) 単一のコレクション - 猫と犬の両方を単一のコレクションに格納します。これにより、'/animals' のデータを単一のクエリで比較的簡単に取得できます。

2) 複数のコレクション - 猫と犬の両方を個々のコレクションに保存します。これにより、データ ストレージがより論理的になりますが、「/animals」のデータを取得するには、複数のクエリとそのデータの連結が必要になります。

私が見逃した他のオプション、または推奨されるアプローチはありますか?

ありがとう

4

2 に答える 2

1

あなたが言及したオプションは、あなたの問題に最も適切なアプローチです。

特定のケースでは、各モデルの一意のプロパティがそれほど大きくない場合は、方法1ですべてのデータを単一のコレクションに格納し、簡単にクエリを実行できます。

それ以外の場合、モデルがやや重く、多くのプロパティがある場合は、モデルを異なるコレクションに分割し、それぞれのモデルでクエリします。これは、より多くの作業を行うように見えますが、少なくとも、重いモデルを操作するための抽象化と柔軟性が向上します。意味はオプション2で行きます

于 2012-12-02T09:53:34.510 に答える
0

mongodb の優れている点は、スキーマがないことです。それがまさにあなたが必要としているもののように聞こえます。普通のnode-mongodb-nativeだけを使用することを検討し、すべての動物を 1 つのコレクションに格納します。

于 2012-12-02T08:58:10.423 に答える