- feature: allow_disk_use

This commit is contained in:
lukasloetkolben 2021-02-22 21:42:02 +01:00
parent d033e3b133
commit 68447af127

View File

@ -34,7 +34,6 @@ from mongoengine.queryset import transform
from mongoengine.queryset.field_list import QueryFieldList
from mongoengine.queryset.visitor import Q, QNode
__all__ = ("BaseQuerySet", "DO_NOTHING", "NULLIFY", "CASCADE", "DENY", "PULL")
# Delete rules
@ -63,6 +62,7 @@ class BaseQuerySet:
self._loaded_fields = QueryFieldList()
self._ordering = None
self._snapshot = False
self._allow_disk_use = False
self._timeout = True
self._read_preference = None
self._read_concern = None
@ -798,6 +798,7 @@ class BaseQuerySet:
"_loaded_fields",
"_ordering",
"_snapshot",
"_allow_disk_use",
"_timeout",
"_read_preference",
"_read_concern",
@ -1165,6 +1166,16 @@ class BaseQuerySet:
queryset._snapshot = enabled
return queryset
def allow_disk_use(self, enabled):
"""Enable or disable the use of temporary files on disk while processing a blocking sort operation.
(To store data exceeding the 100 megabyte system memory limit)
:param enabled: wether or not temporary files on disk are used
"""
queryset = self.clone()
queryset._allow_disk_use = enabled
return queryset
def timeout(self, enabled):
"""Enable or disable the default mongod timeout when querying. (no_cursor_timeout option)
@ -1604,6 +1615,9 @@ class BaseQuerySet:
if not self._timeout:
cursor_args["no_cursor_timeout"] = True
if self._allow_disk_use:
cursor_args["allow_disk_use"] = True
if self._loaded_fields:
cursor_args[fields_name] = self._loaded_fields.as_dict()