The Geospatial Command includes only one command, which is geoSearch. It is used to perform a geospatial query that utilizes MongoDB's haystack index functionality.
Haystack index: It increases searches by creating buckets of objects grouped by a second criterion.
The geoSerach command loaded with an interface that can be used by MongoDB's haystack index functionality. It is used to return a location-based results after collecting result based on some different queries such as haystack.
Syntax:
db.runCommand({ geoSearch : "read", near: [ -73.9667, 40.78 ], maxDistance : 6, search : { type : "tutorial" }, limit : 30 })
It accepts the document that contains the following fields:
Field | Type | Description |
---|---|---|
geoSearch | string | It is the name of the collection on which you want to perform geoSearch. |
search | document | It is the query that is used to filter the document. |
near | array | It is the coordinates of the point where we want to perform geosearch. |
maxDistance | number | We can define the maximum distance to where we want to perform the search. |
Limit | number | We can limit the maximum number document it will return. |
readConcern | document | We can specify the read concern using the following syntax;
readConcern: { level: <value> }
|
Let's take the example of collection location:
db.runCommand( { geoSearch : "location", near: [ -73.96466, 40.78546 ], maxDistance : 8, search : { type : "book store" }, limit : 50 })
The above command returns all the documents with a type of book store having a maximum distance of 8 units from the coordinates [ -73.96466, 40.78546 ] in the collection location up to a maximum of 50 results.
Overriding Default Read Concern
We can use the read concern option to override the default read concern level. As for example:
db.runCommand( { geoSearch: "places", near: [ -73.9667, 40.78 ], search : { type : "book store" }, readConcern: { level: "majority" } } )