diff --git a/plugins/mongodb_datasource/datasource.py b/plugins/mongodb_datasource/datasource.py index 5ea079c..bae0bc2 100644 --- a/plugins/mongodb_datasource/datasource.py +++ b/plugins/mongodb_datasource/datasource.py @@ -97,6 +97,11 @@ class MongoDbDatasource(object): collection_name = object_collection_name(target) collection = self.database[collection_name] + + if not target.abstract: + # Add the class name to the filters + filters.append(('classname', '=', target.__name__)) + query_filters = self.__process_filters( target, filters, rel_filters) query_result_ordering = None diff --git a/plugins/mongodb_datasource/utils.py b/plugins/mongodb_datasource/utils.py index f9f7e06..9622466 100644 --- a/plugins/mongodb_datasource/utils.py +++ b/plugins/mongodb_datasource/utils.py @@ -67,7 +67,10 @@ def connect(host, port, db_name, username, password): # @param class_object EmClass # @return str def object_collection_name(class_object): - return class_object.__name__ + if class_object.abstract: + return class_object.__name__ + else: + return object_collection_name(class_object.__base__) ## @brief Determine a collection field name given a lodel2 fieldname