2016-09-12 10 views
1

I持って、次のコレクション:MongoDB - この関係を作る方法?

クライアント アドレス

は今、私は1つのクライアントに複数のアドレスを追加できるようにしたいと名前だけを扱って保存されているコレクションに対処したとします。したがって、住所の参照や通りの番号などのその他の情報はすべて、クライアントの埋め込みデータに格納する必要があります。

私はこのような何かに考えていた:

クライアントコレクションの文書の例:

  • 名: 'クライアント名'

  • normalizedName: 'クライアント名'

  • email: '[email protected]'

  • アドレス:[ {あるAddressId:のObjectId( 'OBJECTID')、数:6、デフォルト:真、参照: 'スーパーマーケットの横'} ...]

  • isCompany:偽

アドレス収集の文書例:

  • (_id):のObjectId( 'オブジェクトID ')

  • 名: 'グリフィン博士はニューウィンザー'

  • normalizedName:' グリフィン博士。ニューウィンザー」

  • 状態: 『NY』

  • 国:「米国の

すべてが(私が間違っている場合は悪い何かが、このアプローチに存在する場合、私を修正正常に見えます私が何かを変更する必要がある場合)。しかし今、私はフィルタを作成しています(Angular2とmongooseをODMとして)、クライアントをソートすると、クライアントをアドレス名でソートする方法がありますか?私はデフォルトのアドレスプロパティを持っていると考えていますか?もしそうでなければ、私はこれらのコレクションモデルで何かを変えてどうですか?アドレス配列(クライアントコレクション)内のオブジェクトにアドレス名を追加することも考えていました。ソート(client.address.name)...

もう1つポイントは次のとおりです。ユーザーにアドレスデータベースをインポートする可能性があるため、新しいコレクションで自分のアドレスを区切っています。そのため、クライアントが接続されていないアドレスのリストが必要です。

答えて

1

そこに何も悪いことは、あなたのコレクションをモデル化する方法はありませんが、あなたはMongoDBののドキュメントhttps://docs.mongodb.com/manual/tutorial/model-referenced-one-to-many-relationships-between-documents/

に従うならば、それは、その簡単には1を維持するために文書を埋め込むことをお勧めしますけれども - に - 多くの関係。

あなたはクライアントにいくつのアドレスを関連付けることができると思いますか? 上記の貼り付けたリンクをたどってみると、数行しかありません。そこに良い例があります。それがあなたの質問に対処するのに役立つかどうかを見てください。

+0

リンクありがとうございました、私はそこから自分の道を見つけました! –

関連する問題