@@ -26,10 +26,10 @@ from the existing set of data, you can use a find operation such as the
26
26
You can also further specify the information you are requesting by
27
27
including additional parameters or by chaining other methods such as:
28
28
29
- - :doc:`Sort Results </ fundamentals/crud/read-operations/ sort> `
30
- - :doc:`Skip Returned Results </ fundamentals/crud/read-operations/ skip> `
31
- - :doc:`Limit the Number of Returned Results </ fundamentals/crud/read-operations/ limit> `
32
- - :doc:`Specify Which Fields to Return </ fundamentals/crud/read-operations/ project> `
29
+ - :ref:`node- fundamentals- sort`
30
+ - :ref:`node- fundamentals- skip`
31
+ - :ref:`node- fundamentals- limit`
32
+ - :ref:`node- fundamentals- project`
33
33
34
34
You can also use an aggregation operation to retrieve data. This type of
35
35
operation allows you to apply an ordered pipeline of transformations to the
@@ -44,11 +44,41 @@ matching data is inserted.
44
44
Find
45
45
----
46
46
47
- The ``find()`` method is called on the ``Collection`` object that
48
- references the collection you want to query. The method accepts a query
49
- document that describes the documents you want to retrieve. For more
50
- information on how to specify your query document, see our guide on
51
- how to :doc:`Specify a Query </fundamentals/crud/query-document>`.
47
+ You can call the ``find()`` method on a ``Collection`` object. The
48
+ method accepts a query document that describes the documents you want to
49
+ retrieve. For more information on how to specify your query document,
50
+ see the :ref:`node-fundamentals-query-document` guide.
51
+
52
+ .. tip:: No Query Criteria
53
+
54
+ To execute a find operation that has no query criteria, you can
55
+ pass an empty query or omit the query document in your find
56
+ method parameters.
57
+
58
+ The following operations both return all documents in the
59
+ ``myColl`` collection:
60
+
61
+ .. code-block:: javascript
62
+
63
+ await myColl.find(); // no query
64
+ await myColl.find({}); // empty query
65
+
66
+ If you don't pass a query or pass an empty query
67
+ to the ``findOne()`` method, the operation returns a single
68
+ document from a collection.
69
+
70
+ You can specify options in a find operation even when you pass an
71
+ empty query. For example, the following code shows how you can
72
+ specify a projection as an option while executing a find operation
73
+ with an empty query parameter:
74
+
75
+ .. code-block:: javascript
76
+
77
+ const options = {
78
+ projection: { _id: 0, field1: 1 },
79
+ };
80
+
81
+ const findResult = await myColl.findOne({}, options);
52
82
53
83
To access the results, you can optionally pass a callback in the method
54
84
call or resolve the returned ``Promise`` object. See our guide on
@@ -71,15 +101,13 @@ matching document or ``null`` if there are no matches.
71
101
:start-after: start find crud example
72
102
:end-before: end find crud example
73
103
74
-
75
104
Once the operation returns, the ``findResult`` variable references a
76
105
``Cursor``. You can print the documents retrieved using the ``forEach()``
77
106
method as shown below:
78
107
79
108
.. code-block:: javascript
80
109
81
- await cursor.forEach(console.dir);
82
-
110
+ await findResult.forEach(console.dir);
83
111
84
112
The output might resemble the following:
85
113
@@ -92,8 +120,8 @@ matching document or ``null`` if there are no matches.
92
120
...
93
121
]
94
122
95
- See the :doc :`find() </ usage-examples/ find>` and :doc :`findOne()
96
- </ usage-examples/findOne >` for fully-runnable examples.
123
+ See the :ref :`find() <node- usage-find>` and :ref :`findOne()
124
+ <node- usage-findone >` for fully-runnable examples.
97
125
98
126
Aggregate
99
127
---------
@@ -115,15 +143,13 @@ group, and arrange the result data from a collection.
115
143
:start-after: start aggregate crud example
116
144
:end-before: end aggregate crud example
117
145
118
-
119
146
Once the operation returns, the ``aggregateResult`` variable references a
120
147
``Cursor``. You can print the documents retrieved using the ``forEach()``
121
148
method as shown below:
122
149
123
150
.. code-block:: javascript
124
151
125
- await cursor.forEach(console.dir);
126
-
152
+ await aggregateResult.forEach(console.dir);
127
153
128
154
The output might resemble the following:
129
155
@@ -165,4 +191,4 @@ data whenever write operations are executed on the collection.
165
191
166
192
167
193
For a runnable example of the ``watch()`` method using the NodeJS driver, see
168
- the :doc :`change streams </ usage-examples/changeStream >` usage example.
194
+ the :ref :`change streams <node- usage-watch >` usage example.
0 commit comments