1

ドキュメントで提案されているように、Meteor と MongoDB を使用しています。リレーショナル データベースのバックグラウンドを持つ私は、NOSQL ストアでデータをモデル化するための戦略を理解したいと考えています。

シナリオは I haveusersで、それぞれuserに 1 つずつありvinます。すべてがかなり標準的で、1 つのコレクションで可能です。vinしかし、最近購入した車に関する匿名の情報を表示するために最高のものを見つけたい場合は、次のような検索を作成するだけですか?

Users.find({}, sort: {vin_number: -1})

またはそれをモデル化するより良い方法はありますか?特定のユーザーが複数の を持っている場合はどうなりvinますか? リレーショナルの世界では、これは「has many」関係です。しかし、ユーザー ドキュメントに の配列を埋め込んだ場合、どうすればvins最大数を抽出できますか。

ご覧のとおり、私は物事をテーブルとしてモデル化することから埋め込みドキュメントにモデル化するという根本的な変化に取り組んでいます。

任意の助けをいただければ幸いです。また、(SO の方法ではないことはわかっていますが) リレーショナル モデリング パターンからスキーマのないパターンへの穏やかな移行のための場所へのポインタがあれば幸いです。

4

2 に答える 2

1

変換を使用して、vin のリストから最高の vin を取得できます。

Users.find({}, {sort: {vin_number: -1}, transform: function(doc) {
    doc.vin_number = _.max(doc.vin_number_array);
    return doc;
}})

私はこれを試したことはありません.変換または並べ替えが最初に来るかどうかは少しわかりません. vin_number_arrayしかし、ドキュメントにvin 番号の配列がある場合、アンダースコアの機能vin_numberを使用する番号の中で最大のものになります。max

于 2013-08-20T00:54:30.990 に答える