Convert query parameters from API urls to MongoDB queries !
Project description
MongoDBQueriesManager
Convert query parameters from API urls to MongoDB queries !
⚠️Work in progress⚠️
This project was inspired by api-query-params (JS Library).
Features:
- Powerful: Supports most of MongoDB operators ($in, $regexp, ...) and features (nested objects, type casting, ...)
- Agnostic: Works with any web frameworks (Flask, Sanic, ...) and/or MongoDB libraries (pymongo, motor, ...)
- Simple: ~150 LOC, Python typing
Installation:
pipenv install mongo-queries-manager
Usages:
Api
mqm(string_query: str) -> Dict[str, Any]:
Description
Converts string_query
into a MongoDB query dict.
Arguments
string_query
: query string of the requested API URL (ie,frist_name=John&limit=10
), Works with url encoded. [required]
Returns
The resulting dictionary contains the following properties:
filter
: Contains the query criteriasort
: Contains the sort criteria (cursor modifiers)skip
: Contains the skip criteria (cursor modifiers)limit
: Contains the limit criteria (cursor modifiers)
Exception
In case of error the following exception was raised:
MongoDBQueriesManagerError
: This exception was raised if the library fail to parse query. Containsraison
attribute.
Examples:
from pymongo import MongoClient
from pymongo.collection import Collection
from pymongo.database import Database
from mongo_queries_manager import mqm
client: MongoClient = MongoClient('localhost', 27017)
db: Database = client['test-database']
collection: Collection = db['test-collection']
mongodb_query = mqm(string_query="status=sent&toto=true×tamp>2016-01-01&"
"author.firstName=/john/i&limit=100&skip=50&sort=-timestamp")
result = collection.find(**mongodb_query)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for mongo-queries-manager-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe466b5c0af4bd65548c910312f912d1f309fa56365a4ed8455dc60edbbf5981 |
|
MD5 | e359450caf06251347af40edb1d7befe |
|
BLAKE2b-256 | 162b3c3fdeb081695e704e1106b039673c32a66f9e0eda047f1fca41387bad2b |
Close
Hashes for mongo_queries_manager-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2330bd852b7ab2160f880973060b080aae2162904f7d80a2140fdcfc27abeac |
|
MD5 | 06fd63feaba82d333524e32bf0d36b68 |
|
BLAKE2b-256 | af4b9a5ac16256beb561d2685d742b530461a3f8e1ddf1e53eab750db2ff7efe |