がデータを考えると、単純なサブクエリ例:のMongoDB -
> db.parameters.find({})
{ "_id" : ObjectId("56cac0cd0b5a1ffab1bd6c12"), "name" : "Speed", "groups" : [ "
123", "234" ] }
> db.groups.find({})
{ "_id" : "123", "name" : "Group01" }
{ "_id" : "234", "name" : "Group02" }
{ "_id" : "567", "name" : "Group03" }
私はクエリがグループ内で与えられた文書のアレイに含まれるすべてのグループを返すよう_id パラメータを供給したいと思いますパラメータテーブル。
簡単な解決策は、複数のDBがPyMongoに呼び出しを行うようだ:
- はグループ配列の各要素について
- _id供給に基づいてパラメータテーブルからパラメータを取得しますからドキュメントを選択グループコレクション
しかし、これは非常に多くの不要なオーバーヘッドを持ちます。私はMongoDB内でこれを行うために(DB内でカスタムJSを実行することなく)、これを行うためのより良い、より速い方法が必要であると感じています。あるいは、文書ベースのアプローチを無視して、データを少しでも正規化して(リレーションシップのテーブルのように)データを再構成する必要がありますか?
再び、私はあなたが集約フレームワークを使用して単一のクエリ内でこれを行うことができますPyMongo DBインタフェース