docs: def query(self, design, view, use_devmode=False, **kwargs):
          """
          Query a pre-defined MapReduce view, passing parameters.
  
          This method executes a view on the cluster. It accepts various
          parameters for the view and returns an iterable object
          (specifically, a :class:`~.View`).
  
          :param string design: The design document
          :param string view: The view function contained within the design
              document
          :param boolean use_devmode: Whether the view name should be
              transformed into a development-mode view. See documentation
              on :meth:`~.BucketManager.design_create` for more
              explanation.
          :param kwargs: Extra arguments passed to the :class:`~.View`
              object constructor.
          :param kwargs: Additional parameters passed to the
              :class:`~.View` constructor. See that class'
              documentation for accepted parameters.
  
          .. seealso::
  
              :class:`~.View`
                  contains more extensive documentation and examples
  
              :class:`couchbase.views.params.Query`
                  contains documentation on the available query options
  
              :class:`~.SpatialQuery`
                  contains documentation on the available query options
                  for Geospatial views.
  
          .. note::
  
              To query a spatial view, you must explicitly use the
              :class:`.SpatialQuery`. Passing key-value view parameters
              in ``kwargs`` is not supported for spatial views.
  
          """
          design = self._mk_devmode(design, use_devmode)
          itercls = kwargs.pop('itercls', View)
          return itercls(self, design, view, **kwargs)