- Reference >
mongosh
Methods >- Cursor Methods >
- cursor.allowDiskUse()
cursor.allowDiskUse()¶
On this page
Definition¶
New in version 4.4.
-
cursor.
allowDiskUse
()¶ Important
mongosh
MethodThis page documents a
mongosh
method. This is not the documentation for a language-specific driver such as Node.js.For MongoDB API drivers, refer to the language-specific :driver:`MongoDB driver documentation </>`.
For the legacy
mongo
shell documentation, refer to the documentation for the corresponding MongoDB Server release:Use
allowDiskUse()
to either allow or prohibit writing temporary files on disk when a pipeline stage exceeds the 100 megabyte limit. Starting in MongoDB 6.0, operations that require greater than 100 megabytes of memory automatically write data to temporary files by default.allowDiskUse()
has the following form:
See Sort and Index Use for more information on blocking sort operations.
Behavior¶
Interaction with allowDiskUseByDefault
¶
Starting in MongoDB 6.0, pipeline stages that require more than 100 megabytes of memory to execute write temporary files to disk by default.
Note
Prior to MongoDB 6.0, .allowDiskUse(false)
and
.allowDiskUse(true)
have the same effect. In MongoDB 6.0, both
mongosh
and the legacy mongo
shell behave the following way:
If allowDiskUseByDefault
is true
(this is the default):
.allowDiskUse()
has no additional effect.allowDiskUse(true)
has no additional effect.allowDiskUse(false)
prohibits the query from writing temporary files to disk
If allowDiskUseByDefault
is false
:
.allowDiskUse()
enables writing temporary files to disk.allowDiskUse(true)
enables writing temporary files to disk.allowDiskUse(false)
has no additional effect
Supports Large Non-Indexed Sorts Only¶
cursor.allowDiskUse()
has no effect on sort operations
answered using an index or non-indexed (“blocking”) sort operations
which require less than 100 megabytes of memory. For more complete
documentation on blocking sorts and sort index use, see
Sort and Index Use.
To check if MongoDB must perform an blocking sort, append
cursor.explain()
to the query and check the
explain results. If the query plan
contains a SORT
stage, then MongoDB must perform an
blocking sort operation subject to the 100 megabyte memory limit.
Example¶
Consider a collection sensors
with only the default index on
_id
. The collection contains documents similar to the
following:
The following operation includes a cursor.sort()
on the
field reading.timestamp
. The operation also includes
cursor.allowDiskUse()
to support the sort operation.
Since reading.timestamp
is not included in an index, MongoDB
must perform a blocking sort operation to return results in the
requested sort order. By specifying allowDiskUse()
,
MongoDB can process the sort operation even if it requires more than
100 megabytes of system memory. If allowDiskUse()
was omitted and the operation required more than 100 megabytes of
system memory, MongoDB would return an error.