0

同様のパラメーターに最初のコレクションの名前と2番目のコレクションの名前を持つスクリプトをPythonで作成する必要があります( db のMongoDBコレクション)。渡されたいくつかのフィールド名で、これらの 2 つのコレクション間で JOIN を実行する必要があります (コレクションの構造がわからず、十分に一般的である必要があります)。私は、Ming、MongoKit、MongoAlchemy、MongoEngine、および minimongo などの ORM を調べまし たhttp://api.mongodb.org/python/current/tools.html#orm-like-layersアドバイス、例?

4

2 に答える 2

2

MongoDB マッパー/ORM ソリューションが JOIN のような動作を許可する可能性はほとんどありません。これは、リレーショナル データベースに関連付けられた機能であり、NoSQL ベースの ORM には存在しないためです (たとえば、MongoDB でそれらを一貫して行う方法はありません)。率直に言って、ORM が JOIN のような動作を実装している場合は、おそらく設計上の欠陥だと思います。

py スクリプトで要求された機能を自分で実装するのを妨げているのは何ですか?

于 2012-03-20T10:12:30.470 に答える
1

実際に結合を行うことはできないため、結合は探しているものではありません。ドライバーまたは ORM/ODM (Java の Morphia や Ruby の Mongoid など) で通常利用できるのは、別のコレクション内のオブジェクトを指す ID または ID のリストを持つリファレンスです。次に、通常、逆参照する (参照に対して別のクエリを実行する) ヘルパー関数があるため、明示的に実行しなくても、含まれているオブジェクトを元に戻すことができます。

実際には、これを自動的に実行できるようにする機能が python ドライバーに含まれています。例を次に示します (単体テストに更新 - 他の例は古いものでした): https://github.com/mongodb/mongo-python-driver/blob/master/test/test_dbref.py

于 2012-03-20T14:20:21.827 に答える