1. ホーム
  2. mongodb

[解決済み] MongoDBと「結合」 [重複]について

2022-04-24 09:59:43

質問

MongoDBは正式には"joins"をサポートしていないようですが。これはどういう意味ですか?

これは、"2つのコレクション(テーブル)を一緒に接続することはできない、という意味ですか?

に値を入れればいいと思います。 _id をコレクションAから other_id のように、2つのコレクションを単純につなげることはできないのでしょうか?

私の理解が正しければ、MongoDBは、例えばクエリを実行するときに、2つのテーブルを一緒に接続することができます。これを行うのは、quot;Reference" に書かれている http://www.mongodb.org/display/DOCS/Schema+Design .

では、quot;joins"の本当の意味は何でしょうか?

MongoDBのスキーマ設計を学ぶ上で欠かせないことなので、ぜひ答えを教えてください。 http://www.mongodb.org/display/DOCS/Schema+Design

解決方法は?

リレーションシップは必要なときだけ評価されるので、結合ではありません。一方、(SQLデータベースにおける)結合は、リレーションシップを解決して、あたかも1つのテーブルであるかのように返します("2つのテーブルを1つに結合します")。

DBRefについては、こちらで詳しく解説しています。 http://docs.mongodb.org/manual/applications/database-references/

リファレンスを解決するには、2つの解決策が考えられます。ひとつは、あなたがほとんど説明しているように、手動で行うことです。あるドキュメントの _id を別のドキュメントの other_id に保存し、その関係を解決するための独自の関数を書けばよいのです。もうひとつの方法は、上記のマニュアルページで説明されているように DBRefs を使うことで、MongoDB にリレーションシップを解決させることです。 クライアント側 オンデマンドで どちらの方法もクライアント側で関係を解決するので、どちらの方法を選ぶかはあまり重要ではありません(SQLデータベースはサーバ側で結合を解決することに注意してください)。