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.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

mongomoron-0.2-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mongomoron-0.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for mongomoron-0.2.tar.gz
Algorithm Hash digest
SHA256 493adf15ab005168215a78b2616bbd78dec873f65ec86b6fbdbe4d816c5646cb
MD5 6a1c5f0517a00b4c3543accf3f1b2261
BLAKE2b-256 fdc5f95bc0bbe7550a3e83294cb0bfc389336fcf05b09d7e4c57d72f50f06df1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mongomoron-0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for mongomoron-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 07108d192cdd48102d3086f51031437d826d28d7b1f02edceb14280c40733328
MD5 4ce1ab360a5383d2dd452321e01b4d06
BLAKE2b-256 88e787f3a8dc05c7262e261b126892659f3c594390f5845c068fac03587a57c4

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