Skip to content

Commit 3fe1fd8

Browse files
authored
(DOCSP-8551) Add example queries to Query Your Data page (#214)
* (DOCSP-8551) Add example queries to Query Your Data page * Changes based on copy review * Simplified date example * Changes from review * Remove example block styling
1 parent 9bb7dde commit 3fe1fd8

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

source/query/filter.txt

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,173 @@ How Does the Compass Query Compare to MongoDB and SQL Queries?
108108
SELECT * FROM article
109109
WHERE author = "Joe Bloggs";
110110

111+
Examples
112+
--------
113+
114+
.. class:: example
115+
116+
The following examples use the JSON documents below as sample data.
117+
To import this sample data to your MongoDB deployment with |compass|:
118+
119+
1. Copy the array of documents below by clicking :guilabel:`Copy`.
120+
121+
.. code-block:: JSON
122+
123+
[
124+
{
125+
"_id":{"$oid":"5a9427648b0beebeb69579cc"},
126+
"name":"Andrea Le",
127+
"email":"[email protected]",
128+
"version":5,
129+
"scores":[85, 95, 75],
130+
"dateCreated":{"$date":"2003-03-26"}
131+
},
132+
{
133+
"_id":{"$oid":"5a9427648b0beebeb69579cf"},
134+
"name":"Greg Powell",
135+
"email":"[email protected]",
136+
"version":1,
137+
"scores":[65, 75, 80],
138+
"dateCreated":{"$date":"1999-02-10"}
139+
}
140+
]
141+
142+
2. In |compass-short|, use the left navigation panel to select the
143+
database and the collection you want to import the data to.
144+
145+
#. Click the :guilabel:`Documents` tab.
146+
147+
#. Click :guilabel:`Add Data` and select :guilabel:`Insert Document`.
148+
149+
#. Ensure that :guilabel:`View` is set to JSON, or ``{}``, and paste
150+
the copied JSON documents in the field.
151+
152+
#. Click :guilabel:`Insert`.
153+
154+
.. note::
155+
156+
If you do not have a MonogDB deployment or if you would like to
157+
query a large sample data set, see
158+
:atlas:`Sample Data for Atlas Clusters</sample-data/>` for
159+
instructions on creating a free-tier cluster with sample data. Note
160+
that the examples below are intended to filter the sample JSON
161+
documents provided on this page and may not properly filter another
162+
sample data set.
163+
164+
.. tabs::
165+
166+
.. tab:: Filter for a Match
167+
:tabid: match
168+
169+
The following :ref:`query filter <query-bar-filter>` uses the
170+
:manual:`$eq operator </reference/operator/query/eq/>` to find
171+
all documents where ``name`` is "Andrea Le" .
172+
173+
.. code-block:: shell
174+
175+
{ name: { $eq: "Andrea Le" } }
176+
177+
The query returns the following document because the ``name``
178+
field value in the document is an exact match.
179+
180+
.. code-block:: JSON
181+
:copyable: false
182+
183+
{
184+
"_id":ObjectId("5a9427648b0beebeb69579cc"),
185+
"name":"Andrea Le",
186+
"email":"[email protected]",
187+
"version":5,
188+
"scores":[85, 95, 75],
189+
"dateCreated":2003-03-26T00:00:00.000+00:00
190+
}
191+
192+
.. tab:: Filter by Comparison
193+
:tabid: compare
194+
195+
The following :ref:`query filter <query-bar-filter>` uses the
196+
:manual:`$lte operator </reference/operator/query/lte/>` to
197+
find all documents where ``version`` is less than or equal
198+
to ``4``.
199+
200+
.. code-block:: shell
201+
202+
{ version: { $lte: 4 } }
203+
204+
The query returns the following document because the value of
205+
the ``version`` field in the document is less than ``4``.
206+
207+
.. code-block:: JSON
208+
:copyable: false
209+
210+
{
211+
"_id":ObjectId("5a9427648b0beebeb69579cf"),
212+
"name":"Greg Powell",
213+
"email":"[email protected]",
214+
"version":1,
215+
"scores":[65, 75, 80],
216+
"dateCreated":1999-02-10T00:00:00.000+00:00
217+
}
218+
219+
.. tab:: Filter by Date
220+
:tabid: date
221+
222+
The following :ref:`query filter <query-bar-filter>` uses the
223+
:manual:`$gt operator </reference/operator/query/gt/>` and
224+
:manual:`Date() method </reference/method/Date/>` to find all
225+
documents where the ``dateCreated`` field value is later than
226+
June 22nd, 2000.
227+
228+
.. code-block:: shell
229+
230+
{ dateCreated: { $gt: Date('2000-06-22') } }
231+
232+
The query returns the following document because the value of
233+
the ``dateCreated`` field is after June 22, 2000.
234+
235+
.. code-block:: JSON
236+
:copyable: false
237+
238+
{
239+
"_id":ObjectId("5a9427648b0beebeb69579cc"),
240+
"name":"Andrea Le",
241+
"email":"[email protected]",
242+
"version":1,
243+
"scores":[85, 95, 75],
244+
"dateCreated":2003-03-26T00:00:00.000+00:00
245+
}
246+
247+
.. tab:: Filter by Elements in an Array
248+
:tabid: array
249+
250+
The following :ref:`query filter <query-bar-filter>` uses the
251+
:manual:`$elemMatch operator </reference/operator/query/elemMatch/>` to find all documents where at least one value in
252+
the ``scores`` array is greater than 80 and less than ``90``
253+
254+
.. code-block:: shell
255+
256+
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }
257+
258+
The query returns the following document because one of the
259+
values in the scores array is ``85``, which matches the
260+
``$elemMatch`` criteria.
261+
262+
.. code-block:: JSON
263+
:copyable: false
264+
265+
{
266+
"_id":ObjectId("5a9427648b0beebeb69579cc"),
267+
"name":"Andrea Le",
268+
"email":"[email protected]",
269+
"version":1,
270+
"scores":[85, 95, 75],
271+
"dateCreated":2003-03-26T00:00:00.000+00:00
272+
}
273+
274+
For more query examples, see
275+
:manual:`Query Documents </tutorial/query-documents/>`
276+
in the MongoDB manual.
277+
111278
.. class:: hidden
112279

113280
.. toctree::

0 commit comments

Comments
 (0)