2

私は些細なことで苦労しています....
私は次のプロファイルドキュメント構造を持っています:

 {
   pid:"profileId",
   loc : {
       "lat" : 32.082156661684621,
       "lon" : 34.813229013156551,
       "locTime" : NumberLong(0)
         }
   age:29
 }

私のアプリの一般的な使用例は、年齢でフィルタリングされた近くのプロファイルを取得することです。

   { "loc" : { "$near" : [ 32.08290052711715 , 34.80888522811172] , "$maxDistance" :    179.98560115190784}, "age" : { "$gte" : 0 , "$lte" : 33}}

そこで、次の複合インデックスを作成しました。

  { 'loc':2d , age:1}

そして、私が何をしても、作成されたインデックスでクエリを実行することはできません(ヒントも試しました)
。これは、クエリに対して生成された説明です:

  { 
  "cursor" : "GeoSearchCursor" , 
  "isMultiKey" : false , 
  "n" : 4 , 
  "nscannedObjects" : 4 , 
  "nscanned" : 4 , 
  "nscannedObjectsAllPlans" : 4 , 
  "nscannedAllPlans" : 4 , 
  "scanAndOrder" : false , 
  "indexOnly" : false , 
  "nYields" : 0 , 
  "nChunkSkips" : 0 , 
  "millis" : 0 , 
  "indexBounds" : { } ,
  "allPlans" : [ { "cursor" : "GeoSearchCursor" , "n" : 4 , "nscannedObjects" : 4 , "nscanned" :    4 , "indexBounds" : { }
  }

mongodb バージョン 2.4.4 を使用しています。

私は何を間違っていますか?あなたの答えは高く評価されています。

4

1 に答える 1