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

Uploaded Source

Built Distribution

mdocument-4.0.1611941755-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mdocument-4.0.1611941755.tar.gz
Algorithm Hash digest
SHA256 4eaa70138349887a9ef0d4062704a5455ac4f4dc5be45d0d08e1100f3ec61544
MD5 08b8745a7d5c8037f19f62c83bb37ff7
BLAKE2b-256 ea2727d3e4084fbfeeed6463854685ef21e6f31206f0d7935e246dbeedb0fd0f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mdocument-4.0.1611941755-py3-none-any.whl
  • Upload date:
  • Size: 8.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/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1

File hashes

Hashes for mdocument-4.0.1611941755-py3-none-any.whl
Algorithm Hash digest
SHA256 59ab800d9260f19e8bae07a651b4c49f6cff961f44fbf1e777aca20e0002fe46
MD5 fa928f6d2907d29d5bf2d4e0198d4d5e
BLAKE2b-256 6fd03a11585df5721f992657206553c46da5192e7ebe9b58bb7bcd9d640a40d6

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