Esempio n. 1
0
    def filter(self, cls_or_collection, query, raw=False, only=None):
        """
        Filter objects from the database that correspond to a given set of properties.

        See :py:meth:`blitzdb.backends.base.Backend.filter` for documentation of individual parameters

        .. note::

            This function supports all query operators that are available in MongoDB and returns 
            a query set that is based on a MongoDB cursor.

        """

        if not isinstance(cls_or_collection, six.string_types):
            collection = self.get_collection_for_cls(cls_or_collection)
            cls = cls_or_collection
        else:
            collection = cls_or_collection
            cls = self.get_cls_for_collection(collection)

        compiled_query = self.compile_query(query)

        args = {}

        if only != None:
            args['fields'] = only

        return QuerySet(self,
                        cls,
                        self.db[collection].find(compiled_query, **args),
                        raw=raw,
                        only=only)
Esempio n. 2
0
    def filter(self,
               cls_or_collection,
               query,
               sort_by=None,
               limit=None,
               offset=None):

        if not isinstance(cls_or_collection, str) and not isinstance(
                cls_or_collection, unicode):
            collection = self.get_collection_for_cls(cls_or_collection)
            cls = cls_or_collection
        else:
            collection = cls_or_collection
            cls = self.get_cls_for_collection(collection)

        compiled_query = self.serialize(query, convert_keys_to_str=True)

        return QuerySet(self, cls, self.db[collection].find(compiled_query))
Esempio n. 3
0
    def filter(self, cls_or_collection, query, sort_by=None, limit=None, offset=None):
        """
        Filter objects from the database that correspond to a given set of properties.

        See :py:meth:`blitzdb.backends.base.Backend.filter` for documentation of individual parameters

        .. note::

            This function supports all query operators that are available in SQLAlchemy and returns a query set
            that is based on a SQLAlchemy cursor.
        """

        if not isinstance(cls_or_collection, six.string_types):
            collection = self.get_collection_for_cls(cls_or_collection)
            cls = cls_or_collection
        else:
            collection = cls_or_collection
            cls = self.get_cls_for_collection(collection)

        compiled_query = self.compile_query(query)

        return QuerySet(self, cls, self.db[collection].find(compiled_query))