Skip to main content

Vanilla wrapper around pymongo

Project description

Motivation

This lib is intended to be some surrogate of SqlAlchemy for no-sql database, particularly for mongo.

I checked up MongoAlchemy (seems to be dead), MongoEngine and some smaller libs but seems no one of them fits.

Basically I need builders for query filters and aggregation pipelines. However schema is not needed, so any table can have any fields and any operation can be applied to any field.

For example, instead of

cursor = db.my_table.aggregate([{
    '$match': {
        '$expr': {
            '$and': [{
                '$eq': ['$col', 'col value']
            }, {
                '$in': [
                    '$details.key',
                    ['key 1', 'key 2', 'key 3']
                ]
            }]
        }
    },
}, ...])

I wish to write

p = aggregate(my_table)
    .match(my_table.col == 'col value' and \
        my_table.details.key in ['key 1', 'key 2', 'key 3'])
    ....
cursor = conn.execute(p)

Advantages:

  • more clear and readable code;
  • can use IDE's autocomplete;
  • ability to implement shortcuts for commonly used operations.

Naming

Because names MongoAlchemy and NoSqlAlchemy were not vacant, I chose mongomoron because it was first what came to mind, and because of that lib is for morons like me for whom dealing with mongo's json is too difficult.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mongomoron-0.4.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

mongomoron-0.4-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file mongomoron-0.4.tar.gz.

File metadata

  • Download URL: mongomoron-0.4.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for mongomoron-0.4.tar.gz
Algorithm Hash digest
SHA256 22b0b33984e3f6747db5b8539c5add9cfaa2fd5cecf5a59abed1c43eff404c80
MD5 9bda366a545bce9089bac846ced2e6b5
BLAKE2b-256 b630e1c113ebc91fa0a9ead26dae892d546239d604694ffda046617ab5385834

See more details on using hashes here.

File details

Details for the file mongomoron-0.4-py3-none-any.whl.

File metadata

  • Download URL: mongomoron-0.4-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for mongomoron-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c60d497b4d257121ccafd05515146d5ec3950485fe9dbd1d2d41e25e00825461
MD5 996c4ba809f0bb640a75cd47c93260a4
BLAKE2b-256 a5c5fbe4ba3ed44fd8c7b0283d9aea7c27ff6b6e8ecd5b288cffcccc896721ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page