次のセクションでは、 2dsphereインデックスでサポートされているクエリについて説明します。
多角形に囲まれた GeoJSON オブジェクト
 $geoWithin演算子は、GeoJSON 多角形内にあるロケーション データをクエリします。 位置データは GeoJSON 形式で保存する必要があります。 次の構文を使用します。
db.<collection>.find( { <location field> :                          { $geoWithin :                            { $geometry :                              { type : "Polygon" ,                                coordinates : [ <coordinates> ]                       } } } } ) 
次の例では、GeoJSON 多角形内に完全に存在するすべてのポイントとシェイプを選択します。
db.places.find( { loc :                   { $geoWithin :                     { $geometry :                       { type : "Polygon" ,                         coordinates : [ [                                           [ 0 , 0 ] ,                                           [ 3 , 6 ] ,                                           [ 6 , 1 ] ,                                           [ 0 , 0 ]                                         ] ]                 } } } } ) 
GeoJSON オブジェクトの交差
$geoIntersects演算子は、指定された GeoJSON オブジェクトと交差するロケーションをクエリします。 交差する空でない場合、ロケーションはオブジェクトと交差します。 これには、共有エッジを持つドキュメントが含まれます。
$geoIntersects演算子は、次の構文を使用します。
db.<collection>.find( { <location field> :                          { $geoIntersects :                            { $geometry :                              { type : "<GeoJSON object type>" ,                                coordinates : [ <coordinates> ]                       } } } } ) 
次の例では、 $geoIntersectsを使用して、 coordinates配列で定義された多角形と交差するすべてのインデックス付きポイントとシェイプを選択します。
db.places.find( { loc :                   { $geoIntersects :                     { $geometry :                       { type : "Polygon" ,                         coordinates: [ [                                          [ 0 , 0 ] ,                                          [ 3 , 6 ] ,                                          [ 6 , 1 ] ,                                          [ 0 , 0 ]                                        ] ]                 } } } } ) 
GeoJSON ポイントへの近接性
近接クエリは、定義された点に最も近い点を返し、結果を距離順にソートします。 GeoJSON データの近接クエリには2dsphereインデックスが必要です。
GeoJSONポイントへの近接性をクエリするには、 $near演算子のいずれかを使用します。 距離はメートル単位です。
$nearは次の構文を使用します。
db.<collection>.find( { <location field> :                          { $near :                            { $geometry :                               { type : "Point" ,                                 coordinates : [ <longitude> , <latitude> ] } ,                              $maxDistance : <distance in meters>                       } } } ) 
例については、 $nearを参照してください。
$nearSphere演算子と$geoNear集計パイプライン ステージも参照してください。
球体上で定義された円内の点
球体上の「球面上限」内のすべてのグリッド座標を選択するには、 演算子とともに$geoWithin $centerSphereを使用します。以下を含む配列を指定します。
- 円の中心点のグリッド座標 
- ラジアンで測定された円の半径。 ラジアンを計算するには、「球面ジオメトリを使用して距離を計算する 」を参照してください。 
次の構文を使用します。
db.<collection>.find( { <location field> :                          { $geoWithin :                            { $centerSphere :                               [ [ <x>, <y> ] , <radius> ] }                       } } ) 
次の例では、グリッド座標をクエリし、経度88 Wと緯度30 Nの 10 マイル以内にあるすべてのドキュメントを返します。 この例では、距離 10 マイルを地球のおおよその等価半径(3963.2 マイル)で割ってラジアンに変換します。
db.places.find( { loc :                   { $geoWithin :                     { $centerSphere :                        [ [ -88 , 30 ] , 10 / 3963.2 ]                 } } } )