@@ -26,10 +26,10 @@ from the existing set of data, you can use a find operation such as the
2626You can also further specify the information you are requesting by
2727including additional parameters or by chaining other methods such as:
2828
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`
3333
3434You can also use an aggregation operation to retrieve data. This type of
3535operation allows you to apply an ordered pipeline of transformations to the
@@ -44,11 +44,41 @@ matching data is inserted.
4444Find
4545----
4646
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);
5282
5383If you resolve the ``Promise`` returned by ``find()``, you receive
5484a reference to a ``Cursor`` with which you can navigate matched documents.
@@ -66,15 +96,14 @@ matching document or ``null`` if there are no matches.
6696 :start-after: start find crud example
6797 :end-before: end find crud example
6898
69-
7099 Once the operation returns, the ``findResult`` variable references a
71100 ``Cursor``. You can print the documents retrieved using the ``for await...of``
72101 syntax as shown below:
73102
74103 .. code-block:: javascript
75104
76- for await (const doc of cursor ) {
77- console.dir (doc);
105+ for await (const doc of findResult ) {
106+ console.log (doc);
78107 }
79108
80109 The output might resemble the following:
@@ -88,8 +117,8 @@ matching document or ``null`` if there are no matches.
88117 ...
89118 ]
90119
91- See the :doc :`find() </ usage-examples/ find>` and :doc :`findOne()
92- </ usage-examples/findOne >` for fully-runnable examples.
120+ See the :ref :`find() <node- usage-find>` and :ref :`findOne()
121+ <node- usage-findone >` for fully-runnable examples.
93122
94123Aggregate
95124---------
@@ -111,15 +140,14 @@ group, and arrange the result data from a collection.
111140 :start-after: start aggregate crud example
112141 :end-before: end aggregate crud example
113142
114-
115143 Once the operation returns, the ``aggregateResult`` variable references a
116144 ``Cursor``. You can print the documents retrieved using the ``for await...of``
117145 syntax as shown below:
118146
119147 .. code-block:: javascript
120148
121- for await (const doc of cursor ) {
122- console.dir (doc);
149+ for await (const doc of aggregateResult ) {
150+ console.log (doc);
123151 }
124152
125153 The output might resemble the following:
@@ -162,4 +190,4 @@ data whenever write operations are executed on the collection.
162190
163191
164192For a runnable example of the ``watch()`` method using the NodeJS driver, see
165- the :doc :`change streams </ usage-examples/changeStream >` usage example.
193+ the :ref :`change streams <node- usage-watch >` usage example.
0 commit comments