-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
geoSearch.txt
153 lines (89 loc) · 3.19 KB
/
geoSearch.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
=========
geoSearch
=========
.. default-domain:: mongodb
.. contents:: On this page
:local:
:backlinks: none
:depth: 1
:class: singlecol
.. dbcommand:: geoSearch
The :dbcommand:`geoSearch` command provides an interface to
MongoDB's :term:`haystack index` functionality. These indexes are
useful for returning results based on location coordinates *after*
collecting results based on some other query (i.e. a "haystack.")
The :dbcommand:`geoSearch` command accepts a :term:`document` that
contains the following fields.
.. list-table::
:header-rows: 1
:widths: 20 20 80
* - Field
- Type
- Description
* - ``geoSearch``
- string
- The collection to query.
* - ``search``
- document
- Query to filter documents.
* - ``near``
- array
- Coordinates of a point.
* - ``maxDistance``
- number
- Optional. Maximum distance from the specified point.
* - ``limit``
- number
- Optional. Maximum number of documents to return.
* - ``readConcern``
- document
- Optional. Specifies the :term:`read concern`. The option has the following
syntax:
.. code-block:: javascript
readConcern: { level: <value> }
.. include:: /includes/fact-readConcern-option-description.rst
For more information on the read concern levels, see
:ref:`read-concern-levels`.
Behavior
--------
Unless specified otherwise, the :dbcommand:`geoSearch` command
limits results to 50 documents.
.. important:: :dbcommand:`geoSearch` is not supported for sharded
clusters.
Examples
--------
Consider the following example:
.. code-block:: javascript
db.runCommand({
geoSearch : "places",
near: [ -73.9667, 40.78 ],
maxDistance : 6,
search : { type : "restaurant" },
limit : 30
})
The above command returns all documents with a ``type`` of
``restaurant`` having a maximum distance of 6 units from the
coordinates ``[ -73.9667, 40.78 ]`` in the collection ``places`` up to a
maximum of 30 results.
Override Default Read Concern
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To override the default read concern level of :readconcern:`"local"`,
use the ``readConcern`` option.
The following operation on a replica set specifies a
:doc:`/reference/read-concern` of :readconcern:`"majority"` to read the
most recent copy of the data confirmed as having been written to a
majority of the nodes.
.. note::
- .. include:: /includes/fact-enable-majority-readConcern.rst
- .. include:: /includes/fact-readConcern-most-recent-data-in-node.rst
.. code-block:: javascript
db.runCommand(
{
geoSearch: "places",
near: [ -73.9667, 40.78 ],
search : { type : "restaurant" },
readConcern: { level: "majority" }
}
)
.. include:: /includes/usage-read-concern-majority.rst
.. read-lock, slave-ok