@@ -6,15 +6,53 @@ cursor.forEach()
6
6
7
7
.. method:: cursor.forEach(function)
8
8
9
- :param function: function to apply to each document visited by the cursor.
9
+ The :method:`~cursor.forEach()` method iterates the cursor
10
+ to apply function to each document from the cursor.
10
11
11
- Provides the ability to loop or iterate over the cursor returned by
12
- a :method:`db.collection.find()` query and returns each result on the
13
- shell. Specify a JavaScript function as the argument for the
14
- :method:`cursor.forEach()` function. Consider the following example:
12
+ The :method:`~cursor.forEach()` method accepts the following
13
+ argument:
14
+
15
+ :param function:
16
+
17
+ JavaScript function to apply to each document from the
18
+ cursor. The function signature includes a single argument
19
+ which is passed the current document to process, as in the
20
+ following prototype:
21
+
22
+ .. code-block:: javascript
23
+
24
+ function(doc) {
25
+ ...
26
+ }
27
+
28
+ However, if the signature is missing the argument, you can
29
+ access the document using the reserved
30
+ ``arguments`` [#arguments]_ variable within the function,
31
+ specifically ``arguments[0]``, as in the following prototype:
32
+
33
+ .. code-block:: javascript
34
+
35
+ function() {
36
+ doc = arguments[0];
37
+ ...
38
+ }
39
+
40
+ .. [#arguments] The ``arguments`` variable is an array
41
+ and thus, you can access ``arguments.length`` attribute to
42
+ determine the number of arguments.
43
+
44
+ Consider the following example which appends the
45
+ :method:`~cursor.forEach()` method to a
46
+ :method:`~db.collection.find()` query to iterate through the cursor
47
+ returned from the :method:`~db.collection.find()` and apply the
48
+ function to each document:
15
49
16
50
.. code-block:: javascript
17
51
18
- db.users.find().forEach( function(u) { print("user: " + u.name); } );
52
+ db.users.find().forEach( function(myDoc) { print( "user: " + myDoc.name ); } );
53
+
54
+ The example finds all documents in the ``users`` collection and
55
+ applies function to each document in order to print the name from each
56
+ document.
19
57
20
58
.. seealso:: :method:`cursor.map()` for similar functionality.
0 commit comments