Skip to main content

Simple DRM for motor client

Project description

pipeline status coverage report pypi link

MDocument is a simple ORM for MongoDB with addition of relations.

Usage

There are two ways of using mdocument: 1. Specify database, colleciton and client in class. 2. Use modified mongo motor client.

Specifying document parameters in class

import asyncio

import motor.motor_asyncio

from mdocument import MDocument, relations, model

client = motor.motor_asyncio.AsyncIOMotorClient()

class Video(MDocument):
    __collection__ = "videos"
    __database__ = "mdocument"
    __client__ = client

    class Model(MDocument.Model):
        title = model.Field(str)
        views_count = model.Field(int)
        public_id = model.Field(str, unique=True)

class Comment(MDocument):
    __collection__ = "comments"
    __database__ = "mdocument"
    __client__ = client

    class Model(MDocument.Model):
        text = model.Field(str)
        video = model.FieldSync(Video, relation=relations.RelationOneToMany, synced_fields=["_id", "title"])


async def main():
    video = await Video.create({"title": "Test"})

    comment1 = await Comment.create(
        video=video._id,
        message="First!",
    )

    comment2 = await Comment.create(
        video=video._id,
        message="Second!"
    )

loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Now we can easily access our comments using our related documents

TODO: REWRITE DOCUMENTATION!

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

mdocument-4.0.1612473357.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

mdocument-4.0.1612473357-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file mdocument-4.0.1612473357.tar.gz.

File metadata

  • Download URL: mdocument-4.0.1612473357.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for mdocument-4.0.1612473357.tar.gz
Algorithm Hash digest
SHA256 d54ccc93b1c2778a4a4e9b90efe82e05300881e159402d99e4848199ff87b631
MD5 0075144ff90cefa68c2d0d59c644c0e1
BLAKE2b-256 81d7cab0eda14ddb0410cf515874a73b65b78771ea5808cd73397121869ec508

See more details on using hashes here.

File details

Details for the file mdocument-4.0.1612473357-py3-none-any.whl.

File metadata

  • Download URL: mdocument-4.0.1612473357-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for mdocument-4.0.1612473357-py3-none-any.whl
Algorithm Hash digest
SHA256 8e001a0dcf377bf3092799dac820df7519f86371c287454ccd98dbe835c14c84
MD5 527853018886b66de13ad37ae4b6a6e2
BLAKE2b-256 192085180a74390c7f1a0cc75097e46e472ce5a66edb6d76549018a87d174864

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