diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fd745c..bb74aae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,2 @@ ## Minor updates -- Added validation to avoid creating object if find result is none -## Major updates -- Added cursor const values in mongo_types -- Added argument to control parse of cursor in find methods -- Added tests to check correct work of parsed results -- Updated README.md \ No newline at end of file +- Changed skip, limit and sort order in find when populate is not None \ No newline at end of file diff --git a/pymongoose/methods.py b/pymongoose/methods.py index ad0a73f..d188df2 100644 --- a/pymongoose/methods.py +++ b/pymongoose/methods.py @@ -307,6 +307,13 @@ def find(schema: str, query: dict, select = {}, populate=None, one=False, skip = "$project": select }) + if(sort is not None): + aggregate.append({ + "$sort": { + f"{sort_key}": sort_value + } + }) + if(skip > 0): aggregate.append({ "$skip": skip @@ -317,13 +324,6 @@ def find(schema: str, query: dict, select = {}, populate=None, one=False, skip = "$limit": limit }) - if(sort is not None): - aggregate.append({ - "$sort": { - f"{sort_key}": sort_value - } - }) - retval = database[schema_name].aggregate(aggregate) @@ -421,7 +421,7 @@ def update(schema, query, update, many = False): except: raise MongoException(sys.exc_info()[0], message="Error updating document(s)", mongoError=MongoError.Bad_action) -def delete(schema, query, many = False): +def delete(schema, query, many = False, cascade=False): """ Delete documents inside collection # Parameters @@ -433,6 +433,9 @@ def delete(schema, query, many = False): ### many: bool Variable to select if delete one ore many defaults to: False + ### cascade: bool + Variable to delete all items related with this object id + defaults to False # Returns ------------ - number of documents deleted @@ -445,6 +448,8 @@ def delete(schema, query, many = False): retval = database[schema].delete_many(query) return retval.deleted_count else: + if(cascade): + id = database[schema].find_one(query, {"_id": 1}) database[schema].delete_one(query) return 1 except: diff --git a/pymongoose/version.py b/pymongoose/version.py index 1d63b1a..5561d94 100644 --- a/pymongoose/version.py +++ b/pymongoose/version.py @@ -1,5 +1,5 @@ -PYMONGOOSE_VERSION = "1.2" -PYMONGOOSE_VERSION_NAME = "Version 1.2" +PYMONGOOSE_VERSION = "1.2.1" +PYMONGOOSE_VERSION_NAME = "Version 1.2.1" PYMONGOOSE_VERSION_AUTHOR = "Juan Carlos Lara" def pymongoose_version_print_full(): diff --git a/setup.cfg b/setup.cfg index c56d303..e1aa0cf 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = pymongoose -version = 1.2 +version = 1.2.1 author = Juan Carlos Lara author_email = jlaraanaya@gmail.com description = A pymongo helper with methods and classes diff --git a/version.txt b/version.txt index ea710ab..cb174d5 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.2 \ No newline at end of file +1.2.1 \ No newline at end of file