@@ -15,54 +15,59 @@ Definition
15
15
16
16
.. dbcommand:: listIndexes
17
17
18
- Returns information about the indexes on the specified collection,
19
- including :doc:`hidden indexes </core/index-hidden>`. Specifically,
20
- the command returns a document that contains information with which
21
- to create a cursor to the index information. Index information
22
- includes the keys and options used to create the index.
23
- :binary:`~bin.mongosh` provides the
24
- :method:`db.collection.getIndexes()` helper.
18
+ Returns information about the indexes on the specified collection. Returned
19
+ index information includes the keys and options used to create the index, as
20
+ well as :doc:`hidden indexes </core/index-hidden>`. You can optionally set
21
+ the batch size for the first batch of results. :binary:`~bin.mongosh`
22
+ provides the :method:`db.collection.getIndexes()` helper.
25
23
26
- The command has the following form:
24
+ Syntax
25
+ ------
27
26
28
- .. code-block:: javascript
27
+ The command has the following form:
29
28
30
- { "listIndexes": "<collection-name>" }
29
+ .. code-block:: javascript
30
+
31
+ db.runCommand (
32
+ {
33
+ listIndexes: "<collection-name>",
34
+ cursor: { batchSize: <int> },
35
+ comment: <any>
36
+ }
37
+ )
31
38
39
+ Command Fields
40
+ ~~~~~~~~~~~~~~
32
41
33
- .. list-table::
34
- :header-rows: 1
35
- :widths: 20 20 80
36
-
37
- * - Field
38
-
39
- - Type
40
-
41
- - Description
42
-
43
- * - ``listIndexes``
42
+ ``listIndexes`` takes the following fields:
43
+
44
+ .. list-table::
45
+ :header-rows: 1
46
+ :widths: 20 20 80
44
47
45
- - string
48
+ * - Field
49
+ - Type
50
+ - Description
46
51
47
- - The name of the collection.
48
-
49
- * - ``comment``
50
-
51
- - any
52
-
53
- - .. include:: /includes/extracts/comment-content.rst
54
-
55
- .. versionadded:: 4.4
56
-
57
-
52
+ * - ``listIndexes``
53
+ - string
54
+ - The name of the collection.
55
+
56
+ * - ``cursor.batchSize``
57
+ - integer
58
+ - Optional. Specifies the cursor batch size.
59
+
60
+ * - ``comment``
61
+ - any
62
+ - .. include:: /includes/extracts/comment-content.rst
63
+ .. versionadded:: 4.4
58
64
59
65
Required Access
60
66
---------------
61
67
62
- To run :dbcommand:`listIndexes` when access control is enforced, users
63
- must have privileges to :authaction:`listIndexes`. The built-in role
64
- :authrole:`read` provides the required privileges to run
65
- :dbcommand:`listIndexes` for the collections in a database.
68
+ If access control is enforced, the built-in :authrole:`read` role provides the
69
+ required privileges to run :dbcommand:`listIndexes` for the collections in a
70
+ database.
66
71
67
72
Behavior
68
73
--------
@@ -86,17 +91,138 @@ Output
86
91
87
92
.. data:: listIndexes.cursor
88
93
89
- A document that contains information with which to create a cursor
90
- to index information. The cursor information includes the cursor id,
91
- the full namespace for the command, as well as the first batch of
92
- results. Index information includes the keys and options used to
93
- create the index. The index option ``hidden``, available starting in
94
- MongoDB 4.4, is only present if the value is ``true``.
95
-
96
- For information on the keys and index options, see
97
- :method:`db.collection.createIndex()`.
94
+ A result set returned in the batch size specified by your cursor.
95
+ Each document in the batch output contains the following fields:
96
+
97
+ .. list-table::
98
+ :header-rows: 1
99
+ :widths: 15 15 30
100
+
101
+ * - Field
102
+ - Type
103
+ - Description
104
+
105
+ * - id
106
+ - integer
107
+ - A 64-bit integer. If zero, there are no more batches of information.
108
+ If non-zero, a cursor ID, usable in a ``getMore`` command to get the
109
+ next batch of index information.
110
+
111
+ * - ns
112
+ - string
113
+ - The database and collection name in the following format:
114
+ ``<database-name>.<collection-name>``
115
+
116
+ * - firstBatch
117
+ - document
118
+ - Index information includes the keys and options used to create the
119
+ index. The index option hidden, available starting in MongoDB 4.4,
120
+ is only present if the value is true.
121
+
122
+ Use :dbcommand:`getMore` to retrieve additional results as needed.
123
+
98
124
99
125
.. data:: listIndexes.ok
100
126
101
- The return value for the command. A value of ``1`` indicates
102
- success.
127
+ The return value for the command. A value of ``1`` indicates success.
128
+
129
+ Examples
130
+ --------
131
+
132
+ List Database Indexes
133
+ ~~~~~~~~~~~~~~~~~~~~~
134
+
135
+ This example lists indexes for the ``contacts`` collection without specifying the
136
+ cursor batch size.
137
+
138
+ .. io-code-block::
139
+ :copyable: true
140
+
141
+ .. input::
142
+ :language: json
143
+ :linenos:
144
+
145
+ db.runCommand (
146
+ {
147
+ listIndexes: "contacts"
148
+ }
149
+ )
150
+
151
+ .. output::
152
+ :linenos:
153
+
154
+ {
155
+ cursor: {
156
+ id: Long("0"),
157
+ ns: 'test.contacts',
158
+ firstBatch: [
159
+ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' },
160
+ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' }
161
+ ]
162
+ },
163
+ ok: 1
164
+ }
165
+
166
+ Specify Result Batch Size
167
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
168
+
169
+ This example lists indexes for the ``contacts`` collection, and specifies a cursor
170
+ batch size of 1.
171
+
172
+ .. io-code-block::
173
+ :copyable: true
174
+
175
+ .. input::
176
+ :language: json
177
+ :linenos:
178
+
179
+ db.runCommand (
180
+ {
181
+ listIndexes: "contacts", cursor: { batchSize: 1 }
182
+ }
183
+ )
184
+
185
+ .. output::
186
+ :linenos:
187
+
188
+ {
189
+ cursor: {
190
+ id: Long("4809221676960028307"),
191
+ ns: 'test.contacts',
192
+ firstBatch: [ { v: 2, key: { _id: 1 }, name: '_id_', ns: 'test.contacts' } ]
193
+ },
194
+ ok: 1
195
+ }
196
+
197
+ Retrieve Additional Results
198
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
199
+
200
+ This example uses ``getMore`` to retrieve additional result batches from the
201
+ ``contacts`` collection.
202
+
203
+ .. io-code-block::
204
+ :copyable: true
205
+
206
+ .. input::
207
+ :language: json
208
+ :linenos:
209
+
210
+ db.runCommand(
211
+ {
212
+ getMore: Long("4809221676960028307"), collection: "contacts"
213
+ }
214
+ )
215
+
216
+ .. output::
217
+ :linenos:
218
+
219
+ {
220
+ cursor: {
221
+ nextBatch: [ { v: 2, key: { a: 1 }, name: 'a_1', ns: 'test.contacts' } ],
222
+ id: Long("0"),
223
+ ns: 'test.contacts'
224
+ },
225
+ ok: 1
226
+ }
227
+
228
+
0 commit comments