2

今日の午後にデータベースをインストールしたばかりで、MongoDB を初めて使用すると言っても過言ではありません。

オブジェクトの保存と取得になんとか慣れてきましたが、多対多の関係を持つオブジェクトを保存する最良の方法を見つけるのに苦労しています。

私はすでに DBRef オブジェクトに出くわし、それを機能させていますが、これは遅延読み込みアプローチのみをサポートしているようです。

MongoDB に DBRef を積極的にロードさせる方法はありますか?
多対多の関係を保存するためのより良い/別の方法はありますか?

どうもありがとう

ロブ

4

1 に答える 1

3

まず、多対多の関係について説明しているこちらの質問をご覧になる必要があると思います。

もう 1 つ理解しておくべきことは、「DBRefs」の性質です。MongoDB データベースは結合機能を提供しません

DBRef は、数年前に複数のライブラリ/ドライバの実装者が合意した単なる標準です。DBRef は、あるコレクション内の他のドキュメントへのポインタを提供する、特定の表記法による単なる JSON オブジェクトです。したがって、「レイジー vs. イーガー」ロードの実装は、使用しているドライバー/ラッパー ライブラリに完全に固有のものです。

とは言っても、MongoDB では「eager loading」の概念はあまり意味がありません。SQL では、何らかの形式の熱心な読み込みを使用して「事前に」結合を行うことで、クエリの合計を節約できる可能性があります。繰り返しますが、DB は結合をサポートしていないため、「一括読み込み」は「遅延読み込み」と同じ数のクエリを実行します。

于 2012-05-17T18:31:57.867 に答える