Georuimtelijke zoekopdrachten in MongoDB worden gebruikt voor scenario’s waarin locatiegegevens moeten worden opgeslagen en opgehaald. Dit kan bijvoorbeeld nuttig zijn voor apps die locatie gebaseerde diensten aanbieden, zoals het vinden van nabijgelegen restaurants, winkels of vrienden.
Hier zijn enkele basisstappen om georuimtelijke zoekopdrachten te gebruiken in MongoDB:
1. Sla georuimtelijke gegevens op: Gegevens moeten in een specifiek formaat worden opgeslagen voor MongoDB om er georuimtelijke zoekopdrachten op te kunnen uitvoeren. MongoDB ondersteunt verschillende georuimtelijke indelingen, waaronder ‘point’, ‘lineString’ en ‘polygon’. Een punt kan bijvoorbeeld worden opgeslagen als volgt:
```
{
loc: {
type: “Point”,
coordinates: [ -73.97, 40.77 ]
}
}
```
1. Indexeer de georuimtelijke gegevens: Om georuimtelijke zoekopdrachten te kunnen uitvoeren, moet je een georuimtelijke index aanmaken op de velden die de locatiegegevens bevatten. Dit kan gedaan worden met de createIndex() methode:
```
db.collection.createIndex( { loc : “2dsphere” } )
```
1. Voer georuimtelijke zoekopdrachten uit: Nu kan je verschillende soorten georuimtelijke zoekopdrachten uitvoeren op je gegevens. MongoDB ondersteunt verschillende soorten queries, waaronder:
- $geoWithin: Vindt objecten binnen een bepaald gebied.
- $geoIntersects: Vindt objecten die een opgegeven geometrisch object snijden.
- $near: Vindt objecten in de buurt van een bepaald punt, op sorteervolgorde.
- $nearSphere: Werkt net als $near, maar op een sferische geometrie.
Hier is een eenvoudige $near query die punten zou vinden binnen een straal van 100 meter van een opgegeven locatie:
```
db.collection.find( {
loc: {
$near: {
$geometry: {
type: “Point” ,
coordinates: [ -73.97 , 40.77 ]
},
$maxDistance: 100
}
}
} )
```