2017-10-09 4 views
0

私たちは非常に大きなコレクションを持ち、いくつかのインデックスを持っています。

indexは基本的にキーとしてインデックス付きフィールドを持つテーブル、および値としてObjectID秒のリストであるので、我々は何とかそれを指すObjects数が最も多いキーを取得することができれば、我々は思っていました。例えば

、我々が収集している場合:

{ _id: 1, a : 1, b : 1 }, 
{ _id: 2, a : 2, b : 2 }, 
{ _id: 3, a : 2, b : 3 }, 
{ _id: 4, a : 2, b : 4 }, 
{ _id: 5, a : 3, b : 4 }, 
{ _id: 6, a : 3, b : 4 }, 
{ _id: 7, a : 4, b : 4 } 

"a" のインデックスがあります。 - 「2」我々は何とかオブジェクトの最も長いリストでのインデックス値を照会したい

index a: 

"1" => [ 1 ], 
"2" => [ 2, 3, 4 ], 
"3" => [ 5, 6 ], 
"4" => [ 7 ] 

た場合: は、私はこのようになりますどこかのテーブルを想定しています。

MongoDBで可能なことはありますか?

答えて

0

答えはいいえです。

実際には、インデックスはドキュメントのオブジェクトIDのリストを持たず、データへのポインタにすぎません。ドキュメントのobjectIdを取得するには、システムがディスクに移動してそれを読み取る必要があります。そのため、クエリに答えることができるインデックスがあり、結果にが必要ない場合は、常にproject {_id:0、key1:1、key2:1、keyX:1}を覚えておいて結果を返すことができますインデックスから取得し、ディスクに移動する必要はありません。