Skip to content

Commit 522dafd

Browse files
biniona-mongodbterakilobyte
authored andcommitted
Read with Query Guide - Update (#174)
1 parent fee18c7 commit 522dafd

File tree

8 files changed

+244
-58
lines changed

8 files changed

+244
-58
lines changed

source/crud/read.txt

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -37,32 +37,7 @@ Procedure
3737
.. procedure::
3838
:style: normal
3939

40-
.. step:: Connect to your MongoDB instance.
41-
42-
.. include:: /includes/drivers_connect.rst
43-
44-
.. step:: Switch to the ``test`` database.
45-
46-
Switch to the database you wish to query. In this case we will be
47-
using ``test``.
48-
49-
.. include:: /includes/bind_db.rst
50-
51-
.. step:: Retrieve all documents in the ``inventory`` collection.
52-
53-
.. include:: /includes/find_all.rst
54-
55-
.. step:: Iterate over the results.
56-
57-
.. include:: /includes/iterate_all_noshellcursor.rst
58-
59-
.. step:: Check your results.
60-
61-
If you loaded the data from :doc:`/server/insert`, you should
62-
see output that resembles the following:
63-
64-
.. include:: /includes/results_read1.rst
65-
.. include:: /includes/drivers_close_connection.rst
40+
.. include:: /includes/read_server.rst
6641

6742
Summary
6843
-------

source/crud/read_queries.txt

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
:template: guide
2+
3+
===================================
4+
Read Data from MongoDB With Queries
5+
===================================
6+
7+
.. default-domain:: mongodb
8+
9+
.. contents:: On this page
10+
:local:
11+
:backlinks: none
12+
:depth: 2
13+
:class: singlecol
14+
15+
Overview
16+
--------
17+
18+
In the first :doc:`/server/read` guide, you retrieved a
19+
document from the ``inventory`` collection. In this guide, you
20+
will:
21+
22+
- use the ``insertMany`` command to insert more documents into the collection
23+
- query the documents
24+
25+
.. time:: 30
26+
27+
What You'll Need
28+
----------------
29+
30+
.. include:: /includes/prereqs_read_CRUD.rst
31+
32+
Check Your Environment
33+
----------------------
34+
35+
.. include:: /includes/check_for_drivers_install.rst
36+
37+
Procedure
38+
---------
39+
40+
.. tabs-selector:: drivers
41+
42+
Import Data and Query It
43+
~~~~~~~~~~~~~~~~~~~~~~~~
44+
45+
In the first part of this guide, you will insert more documents and
46+
retrieve some of these documents from MongoDB using a simple query.
47+
48+
.. procedure::
49+
:style: normal
50+
51+
.. include:: /includes/read_server_query.rst
52+
53+
Query Data Using Embedded Documents as Criteria
54+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
55+
56+
Now that you have an understanding of how to retrieve data using
57+
query documents, you will now query against embedded documents.
58+
59+
.. procedure::
60+
:style: normal
61+
62+
.. step:: Retrieve specific documents in a collection based on the contents of an embedded document.
63+
64+
If you wish to select documents that match all of the fields in an
65+
embedded JSON object, specify an exact match of the embedded document,
66+
including all of the fields and values in that embedded document in the
67+
order in which they appear in the collection.
68+
69+
For example, the following query selects all documents where the
70+
``size`` field equals the document ``{ "h" : 14, "w" : 21, "uom" : "cm"}``:
71+
72+
.. include:: /includes/driver-example-query-15.rst
73+
74+
.. step:: Iterate over the results.
75+
76+
.. include:: /includes/iterate_all_noshellcursor.rst
77+
78+
.. step:: Check your results.
79+
80+
If you have loaded data into your test database, you will see one or
81+
more JSON documents returned. Note that the record matches the selection
82+
criteria exactly.
83+
84+
.. include:: /includes/results_read3.rst
85+
86+
Query Data Using Embedded Documents With Dot Notation
87+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
88+
89+
Now you will explore how to query embedded documents using ``dot notation``.
90+
91+
.. procedure::
92+
:style: normal
93+
94+
.. step:: Retrieve specific documents in a collection with dot notation.
95+
96+
If you wish to select documents that exactly match just one of the
97+
fields in an embedded JSON object, use :ref:`dot notation <document-dot-notation>`.
98+
(``"field.nestedField"``).
99+
100+
When querying using :ref:`dot notation <document-dot-notation>`., the field and nested field names must be inside quotation marks.
101+
102+
The following example selects all documents where the field ``uom``
103+
nested in the ``size`` field equals ``"in"``:
104+
105+
.. include:: /includes/driver-example-query-17.rst
106+
107+
.. step:: Iterate over the results.
108+
109+
.. include:: /includes/iterate_all.rst
110+
111+
.. step:: Check your results.
112+
113+
If you have loaded data into your test database, you will see one or
114+
more JSON documents returned. Note that the result record has a ``uom`` of ``in``.
115+
116+
.. include:: /includes/results_read4.rst
117+
118+
.. include:: /includes/drivers_close_connection.rst
119+
120+
Summary
121+
-------
122+
123+
If you have successfully completed this guide, you have retrieved data from MongoDB
124+
using specific criteria as expressed in MongoDB's query syntax. You have also used
125+
the embedded document query syntax to retrieve documents based on embedded fields.
126+
127+
What's Next
128+
-----------
129+
130+
In the next guide, you'll learn how to read data from MongoDB using operators and compound queries.
131+
132+
- :doc:`Read Data using Operators and Compound Queries </server/read_operators>`
133+
134+
See Also
135+
--------
136+
137+
- :doc:`/server/insert`
138+
- :doc:`/server/read`
139+
- :doc:`/server/read_operators`
140+
- :doc:`/server/update`
141+
- :doc:`/server/delete`
142+
143+
.. guide-next::

source/includes/driver-example-query-14.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
- id: python
3232
content: |
3333
.. class:: copyable-code
34-
.. literalinclude:: /driver-examples/test_examples.py
34+
.. literalinclude:: /includes/examples/curl_examples/test_examples.py
3535
:language: python
3636
:dedent: 8
3737
:start-after: Start Example 14
@@ -40,7 +40,7 @@
4040
- id: go
4141
content: |
4242
.. class:: copyable-code
43-
.. literalinclude:: /driver-examples/examples.go
43+
.. literalinclude:: /includes/examples/curl_examples/examples.go
4444
:language: go
4545
:dedent: 2
4646
:start-after: Start Example 14
@@ -49,7 +49,7 @@
4949
- id: motor
5050
content: |
5151
.. class:: copyable-code
52-
.. literalinclude:: /driver-examples/test_examples_motor.py
52+
.. literalinclude:: /includes/examples/curl_examples/test_examples_motor.py
5353
:language: python
5454
:dedent: 8
5555
:start-after: Start Example 14
@@ -101,7 +101,7 @@
101101
Now add the ``insertMany`` call.
102102

103103
.. class:: copyable-code
104-
.. literalinclude:: /driver-examples/DocumentationSamples.java
104+
.. literalinclude:: /includes/examples/curl_examples/DocumentationSamples.java
105105
:language: java
106106
:dedent: 8
107107
:start-after: Start Example 14
@@ -110,7 +110,7 @@
110110
- id: nodejs
111111
content: |
112112
.. class:: copyable-code
113-
.. literalinclude:: /driver-examples/examples_tests.js
113+
.. literalinclude:: /includes/examples/curl_examples/examples_tests.js
114114
:language: javascript
115115
:dedent: 8
116116
:start-after: Start Example 14
@@ -119,7 +119,7 @@
119119
#- id: php
120120
# content: |
121121
# .. class:: copyable-code
122-
# .. literalinclude:: /driver-examples/DocumentationExamplesTest.php
122+
# .. literalinclude:: /includes/examples/curl_examples/DocumentationExamplesTest.php
123123
# :language: php
124124
# :dedent: 8
125125
# :start-after: Start Example 14
@@ -128,7 +128,7 @@
128128
#- id: perl
129129
# content: |
130130
# .. class:: copyable-code
131-
# .. literalinclude:: /driver-examples/driver-examples.t
131+
# .. literalinclude:: /includes/examples/curl_examples/driver-examples.t
132132
# :language: perl
133133
# :dedent: 4
134134
# :start-after: Start Example 14
@@ -137,7 +137,7 @@
137137
#- id: ruby
138138
# content: |
139139
# .. class:: copyable-code
140-
# .. literalinclude:: /driver-examples/shell_examples_spec.rb
140+
# .. literalinclude:: /includes/examples/curl_examples/shell_examples_spec.rb
141141
# :language: ruby
142142
# :dedent: 6
143143
# :start-after: Start Example 14
@@ -146,7 +146,7 @@
146146
#- id: scala
147147
# content: |
148148
# .. class:: copyable-code
149-
# .. literalinclude:: /driver-examples/DocumentationExampleSpec.scala
149+
# .. literalinclude:: /includes/examples/curl_examples/DocumentationExampleSpec.scala
150150
# :language: scala
151151
# :dedent: 4
152152
# :start-after: Start Example 14
@@ -164,7 +164,7 @@
164164
Next create the array of BsonDocuments and pass it to the ``insertMany`` call on ``collection``.
165165

166166
.. class:: copyable-code
167-
.. literalinclude:: /driver-examples/DocumentationExamples.cs
167+
.. literalinclude:: /includes/examples/curl_examples/DocumentationExamples.cs
168168
:language: c#
169169
:dedent: 12
170170
:start-after: Start Example 14

source/includes/driver-example-query-15.rst

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
1919
- id: python
2020
content: |
21-
.. literalinclude:: /driver-examples/test_examples.py
21+
.. literalinclude:: /includes/examples/curl_examples/test_examples.py
2222
:language: python
2323
:dedent: 8
2424
:start-after: Start Example 15
@@ -27,15 +27,15 @@
2727

2828
- id: go
2929
content: |
30-
.. literalinclude:: /driver-examples/examples.go
30+
.. literalinclude:: /includes/examples/curl_examples/examples.go
3131
:language: go
3232
:dedent: 2
3333
:start-after: Start Example 15
3434
:end-before: End Example 15
3535

3636
- id: motor
3737
content: |
38-
.. literalinclude:: /driver-examples/test_examples_motor.py
38+
.. literalinclude:: /includes/examples/curl_examples/test_examples_motor.py
3939
:language: python
4040
:dedent: 8
4141
:start-after: Start Example 15
@@ -66,55 +66,55 @@
6666
6767
Now add the query.
6868

69-
.. literalinclude:: /driver-examples/DocumentationSamples.java
69+
.. literalinclude:: /includes/examples/curl_examples/DocumentationSamples.java
7070
:language: java
7171
:dedent: 8
7272
:start-after: Start Example 15
7373
:end-before: End Example 15
7474

7575
- id: nodejs
7676
content: |
77-
.. literalinclude:: /driver-examples/examples_tests.js
77+
.. literalinclude:: /includes/examples/curl_examples/examples_tests.js
7878
:language: javascript
7979
:dedent: 8
8080
:start-after: Start Example 15
8181
:end-before: End Example 15
8282

8383
#- id: php
8484
# content: |
85-
# .. literalinclude:: /driver-examples/DocumentationExamplesTest.php
85+
# .. literalinclude:: /includes/examples/curl_examples/DocumentationExamplesTest.php
8686
# :language: php
8787
# :dedent: 8
8888
# :start-after: Start Example 15
8989
# :end-before: End Example 15
9090

9191
#- id: perl
9292
# content: |
93-
# .. literalinclude:: /driver-examples/driver-examples.t
93+
# .. literalinclude:: /includes/examples/curl_examples/driver-examples.t
9494
# :language: perl
9595
# :dedent: 4
9696
# :start-after: Start Example 15
9797
# :end-before: End Example 15
9898

9999
#- id: ruby
100100
# content: |
101-
# .. literalinclude:: /driver-examples/shell_examples_spec.rb
101+
# .. literalinclude:: /includes/examples/curl_examples/shell_examples_spec.rb
102102
# :language: ruby
103103
# :dedent: 8
104104
# :start-after: Start Example 15
105105
# :end-before: End Example 15
106106

107107
#- id: scala
108108
# content: |
109-
# .. literalinclude:: /driver-examples/DocumentationExampleSpec.scala
109+
# .. literalinclude:: /includes/examples/curl_examples/DocumentationExampleSpec.scala
110110
# :language: scala
111111
# :dedent: 4
112112
# :start-after: Start Example 15
113113
# :end-before: End Example 15
114114

115115
- id: csharp
116116
content: |
117-
.. literalinclude:: /driver-examples/DocumentationExamples.cs
117+
.. literalinclude:: /includes/examples/curl_examples/DocumentationExamples.cs
118118
:language: c#
119119
:dedent: 12
120120
:start-after: Start Example 15

0 commit comments

Comments
 (0)