2

私はmongodbから始めていますが、このプロジェクトに取り組み続ける前に、いくつかの事実を正確に把握するための助けが必要です. 質問は以下にリストされています。すべての回答に感謝します:)

ありがとう!

  1. 高度なコレクションをどのように作成しますか? 私が理解したことから、ドキュメントを初めて挿入するとコレクションが作成されます。
  2. また、インデックスにはどのような種類がありますか?
  3. 最後に、mysql にあるような結合は mongodb にはありません。基本的なプライベート メッセージング システムを構築しようとしているとしましょう。2 つのコレクション (テーブル) が必要です。会話の参加者、会話の一意の ID、およびその会話のすべてのメッセージの別のコレクションを一覧表示するもの。mongodb では、2 番目のコレクションを「メッセージ」などのサブ列として最初のコレクションにネストする方が賢明ですか? それとも、それらを別々にしておく方が良いですか? サブカラムを新しい行で更新することはできますか? 私が話していることの簡単な例をリンクさせてください http://pastebin.com/gzKDNwnU
4

1 に答える 1

1

事前にコレクションを作成しません。特定の特別なコレクション (上限のあるコレクションなど) では事前にいくつかのパラメーターを指定する必要があるため、createCollection コマンドが存在します。コレクションは、その中のいくつかのフィールドで作成または「ensureIndex」を行うときにも作成されます。

インデックスの種類はdocs.mongodb.orgで文書化されています。

際限なく拡大し続ける可能性のある一連のドキュメントをドキュメントに埋め込むことはお勧めしません。会話コレクションの一部の情報をメッセージ コレクションに非正規化することをお勧めします (必要な場合)。目標は、通常必要な情報のすべてまたはほとんどを 1 回の読み取りで取得できるようにすることであり、それ以上ではないことを忘れないでください。したがって、スキーマを決定するのはデータではなく、アプリケーションのアクセス パターンです。

于 2013-06-02T19:09:04.067 に答える