

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# \$1nearSphere
<a name="nearSphere"></a>

L'`$nearSphere`opérateur d'Amazon DocumentDB est utilisé pour rechercher des documents situés à une distance spécifiée d'un point géospatial. Cet opérateur est particulièrement utile pour les requêtes géospatiales, telles que la recherche de tous les restaurants situés dans un certain rayon d'un lieu donné.

**Paramètres**
+ `$geometry`: objet GeoJSON qui représente le point de référence. Il doit s'agir d'un `Point` objet comportant `type` des `coordinates` champs et.
+ `$minDistance`: (facultatif) La distance minimale (en mètres) par rapport au point de référence que doivent se trouver les documents.
+ `$maxDistance`: (facultatif) Distance maximale (en mètres) par rapport au point de référence que doivent se trouver les documents.

## Exemple (MongoDB Shell)
<a name="nearSphere-examples"></a>

Dans cet exemple, nous trouverons tous les restaurants dans un rayon de 2 kilomètres (2000 mètres) d'un emplacement spécifique à Seattle, dans l'État de Washington.

**Création d'exemples de documents**

```
db.usarestaurants.insert([
  {
    name: "Noodle House",
    location: { type: "Point", coordinates: [-122.3516, 47.6156] }
  },
  {
    name: "Pike Place Grill",
    location: { type: "Point", coordinates: [-122.3403, 47.6101] }
  },
  {
    name: "Seattle Coffee Co.",
    location: { type: "Point", coordinates: [-122.3339, 47.6062] }
  }
]);
```

**Exemple de requête**

```
db.usarestaurants.find({
  location: {
    $nearSphere: {
      $geometry: {
        type: "Point",
        coordinates: [-122.3516, 47.6156]
      },
      $minDistance: 1,
      $maxDistance: 2000
    }
  }
}, {
  name: 1
});
```

**Sortie**

```
{ "_id" : ObjectId("611f3da985009a81ad38e74b"), "name" : "Noodle House" }
{ "_id" : ObjectId("611f3da985009a81ad38e74c"), "name" : "Pike Place Grill" }
```

## Exemples de code
<a name="nearSphere-code"></a>

Pour afficher un exemple de code d'utilisation de la `$nearSphere` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function findNearbyRestaurants() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const restaurants = db.collection('usarestaurants');

  const result = await restaurants.find({
    location: {
      $nearSphere: {
        $geometry: {
          type: "Point",
          coordinates: [-122.3516, 47.6156]
        },
        $minDistance: 1,
        $maxDistance: 2000
      }
    }
  }, {
    projection: { name: 1 }
  }).toArray();

  console.log(result);
  client.close();
}

findNearbyRestaurants();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def find_nearby_restaurants():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client.test
    restaurants = db.usarestaurants

    result = list(restaurants.find({
        'location': {
            '$nearSphere': {
                '$geometry': {
                    'type': 'Point',
                    'coordinates': [-122.3516, 47.6156]
                },
                '$minDistance': 1,
                '$maxDistance': 2000
            }
        }
    }, {
        'name': 1
    }))

    print(result)
    client.close()

find_nearby_restaurants()
```

------