{ "info": { "author": "Sanhe Hu", "author_email": "husanhe@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": ".. image:: https://readthedocs.org/projects/mongoengine_mate/badge/?version=latest\n :target: https://mongoengine_mate.readthedocs.io/index.html\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/MacHu-GWU/mongoengine_mate-project.svg?branch=master\n :target: https://travis-ci.org/MacHu-GWU/mongoengine_mate-project?branch=master\n\n.. image:: https://codecov.io/gh/MacHu-GWU/mongoengine_mate-project/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/MacHu-GWU/mongoengine_mate-project\n\n.. image:: https://img.shields.io/pypi/v/mongoengine_mate.svg\n :target: https://pypi.python.org/pypi/mongoengine_mate\n\n.. image:: https://img.shields.io/pypi/l/mongoengine_mate.svg\n :target: https://pypi.python.org/pypi/mongoengine_mate\n\n.. image:: https://img.shields.io/pypi/pyversions/mongoengine_mate.svg\n :target: https://pypi.python.org/pypi/mongoengine_mate\n\n.. image:: https://img.shields.io/badge/STAR_Me_on_GitHub!--None.svg?style=social\n :target: https://github.com/MacHu-GWU/mongoengine_mate-project\n\n------\n\n\n.. image:: https://img.shields.io/badge/Link-Document-blue.svg\n :target: https://mongoengine_mate.readthedocs.io/index.html\n\n.. image:: https://img.shields.io/badge/Link-API-blue.svg\n :target: https://mongoengine_mate.readthedocs.io/py-modindex.html\n\n.. image:: https://img.shields.io/badge/Link-Source_Code-blue.svg\n :target: https://mongoengine_mate.readthedocs.io/py-modindex.html\n\n.. image:: https://img.shields.io/badge/Link-Install-blue.svg\n :target: `install`_\n\n.. image:: https://img.shields.io/badge/Link-GitHub-blue.svg\n :target: https://github.com/MacHu-GWU/mongoengine_mate-project\n\n.. image:: https://img.shields.io/badge/Link-Submit_Issue-blue.svg\n :target: https://github.com/MacHu-GWU/mongoengine_mate-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Request_Feature-blue.svg\n :target: https://github.com/MacHu-GWU/mongoengine_mate-project/issues\n\n.. image:: https://img.shields.io/badge/Link-Download-blue.svg\n :target: https://pypi.org/pypi/mongoengine_mate#files\n\n\nWelcome to ``mongoengine_mate`` Documentation\n==============================================================================\n\n``mongoengine_mate`` includes lots more utility method in ORM model Class, makes ``mongoengine`` more powerful.\n\n\nUsage\n------------------------------------------------------------------------------\n\n.. code-block:: python\n\n import mongoengine\n from mongoengine_mate import ExtendedDocument\n\n class User(ExtendedDocument):\n id = mongoengine.IntField()\n name = mongoengine.StringField()\n\n\nFirst, you got better ``__repr__()`` like:\n\n.. code-block:: python\n\n >>> User(id=1, name=\"Alice\")\n User(id=1, name=\"Alice\")\n\n # access its collection or database\n >>> col_user = User.col()\n >>> col_user.find({\"_id\": 1})\n >>> col_db = User.db()\n\n # access its field name in order\n >>> User.fields_ordered()\n [\"id\", \"name\"]\n\n # provide dictionary-like api\n >>> user = User(id=1, name=\"Alice\")\n >>> user.keys()\n [\"id\", \"name\"]\n\n >>> user.values()\n [1, \"Alice\"]\n\n >>> user.items()\n [(\"id\", \"name\"), (1, \"Alice\")]\n\n >>> user.to_dict()\n {\"id\": 1, \"name\": \"Alice\"}\n\n >>> user.to_OrderedDict()\n OrderedDict([(\"id\", \"name\"), (1, \"Alice\")])\n\n\nSmart Insert - Skip Primary Key Conflict\n------------------------------------------------------------------------------\n\nWhen you do batch insert, sometimes one or a few documents may cause ``_id`` field conflict error, which is breaking the batch insert operation.\n\nUsually you have to write a ``for loop` and use ``try ... except ...`` to ignore conflict. But, it is SLOW!\n\n``ExtendedDocument.smart_insert`` provides a fast and convenient way to batch insert lots of document at once correctly.\n\n.. code-block:: python\n\n # insert one document which breaks the batch insert\n User(id=100, name=\"Obama\").save()\n\n # smart_insert, automatically handle NotUniqueError\n User.smart_insert([\n User(id=1, name=\"Alice\"),\n User(id=2, name=\"Bob\"),\n ...\n User(id=1000, name=\"Zillow\"),\n ])\n\n\nSmart Update - Batch Upsert\n------------------------------------------------------------------------------\n\nWhen you do batch update, you mostly want to use the ``_id`` field to locate which document you want to update.\n\n.. code-block:: python\n\n >>>User(id=2, name=\"Bob\").save()\n\n # update only\n >>> User.smart_update([\n User(id=1, name=\"Alice\"),\n User(id=2, name=\"Bruce\"),\n User(id=3, name=\"Cathy\"),\n ], upsert=False)\n >>> User.objects.count()\n 1\n\n # upsert\n >>> User.smart_update([\n User(id=1, name=\"Alice\"),\n User(id=2, name=\"Bruce\"),\n User(id=3, name=\"Cathy\"),\n ], upsert=True)\n >>> User.objects.count()\n 3\n\n\n.. _install:\n\nInstall\n------------------------------------------------------------------------------\n\n``mongoengine_mate`` is released on PyPI, so all you need is:\n\n.. code-block:: console\n\n $ pip install mongoengine_mate\n\nTo upgrade to latest version:\n\n.. code-block:: console\n\n $ pip install --upgrade mongoengine_mate\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://pypi.python.org/pypi/mongoengine_mate/0.0.4#downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MacHu-GWU/", "keywords": "", "license": "MIT", "maintainer": "Sanhe Hu", "maintainer_email": "husanhe@gmail.com", "name": "mongoengine-mate", "package_url": "https://pypi.org/project/mongoengine-mate/", "platform": "Windows", "project_url": "https://pypi.org/project/mongoengine-mate/", "project_urls": { "Download": "https://pypi.python.org/pypi/mongoengine_mate/0.0.4#downloads", "Homepage": "https://github.com/MacHu-GWU/" }, "release_url": "https://pypi.org/project/mongoengine-mate/0.0.4/", "requires_dist": [ "mongoengine", "sphinx (==1.8.1) ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "sphinx-jinja ; extra == 'docs'", "sphinx-copybutton ; extra == 'docs'", "docfly (>=0.0.17) ; extra == 'docs'", "rstobj (>=0.0.5) ; extra == 'docs'", "pygments ; extra == 'docs'", "pytest (==3.2.3) ; extra == 'tests'", "pytest-cov (==2.5.1) ; extra == 'tests'", "sfm (==0.0.17) ; extra == 'tests'" ], "requires_python": "", "summary": "Utility methods for MongoDB ORM, built on top of mongoengine.", "version": "0.0.4" }, "last_serial": 5851971, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9678130d5c7842f40a852ac3dc005b92", "sha256": "f3da44ee9302a30328badebfc2a78884609eb3e63e97038610014faec6f4135a" }, "downloads": -1, "filename": "mongoengine_mate-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "9678130d5c7842f40a852ac3dc005b92", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12341, "upload_time": "2017-10-09T05:27:24", "url": "https://files.pythonhosted.org/packages/6b/c7/541a66bc828acba32fae85842da9627424d639cbcad2e1471be6e76b2db3/mongoengine_mate-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "851ccf62f62f166a24d20bb3371283cf", "sha256": "7a609b958d379f14b2f5d7a04f585913cfcf81ae3c4b391b8c6aba44cb95fd96" }, "downloads": -1, "filename": "mongoengine_mate-0.0.1.tar.gz", "has_sig": false, "md5_digest": "851ccf62f62f166a24d20bb3371283cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10323, "upload_time": "2017-10-09T05:27:25", "url": "https://files.pythonhosted.org/packages/21/e8/0fc1dc0b75259b97b3ac23664ffa1557412ee1e44f6269822380dbbffc4b/mongoengine_mate-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "2dfdba4aafa029a4b0419b764bb9e55c", "sha256": "31552ade7bd382e1d96183042b4c2ff2bc077180035199b3cf6eeefbc42b68a5" }, "downloads": -1, "filename": "mongoengine_mate-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "2dfdba4aafa029a4b0419b764bb9e55c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 26579, "upload_time": "2018-07-23T02:24:57", "url": "https://files.pythonhosted.org/packages/11/b5/d849838399c7e0e671a9dbe86d139b9bb2712b23f8a725a83582c090e99f/mongoengine_mate-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1ea9cd99a2fc416c349a56c492cd5b39", "sha256": "b5f4b0a0e82b770c8b59675881694a55d10dc2a1ded3b9af6e8c0e0a6bc36a89" }, "downloads": -1, "filename": "mongoengine_mate-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1ea9cd99a2fc416c349a56c492cd5b39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15297, "upload_time": "2018-07-23T02:24:58", "url": "https://files.pythonhosted.org/packages/91/ad/c723eeb9d4777364f8a00ad4ff93b3e703cf9899011d67033b69d313784f/mongoengine_mate-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c5433a7313698de33d93b6cb004fa0c6", "sha256": "77ab03d26dcf94a2a9bcbaad99f8225970f1615a34a51fec187ce4e765269e2e" }, "downloads": -1, "filename": "mongoengine_mate-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "c5433a7313698de33d93b6cb004fa0c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29528, "upload_time": "2018-08-03T01:18:23", "url": "https://files.pythonhosted.org/packages/23/ed/abef8aabc3553d45dcbddb90a6446d17f1b6396202665727243c313c8502/mongoengine_mate-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "017add88897c9e0b9860196686d0922b", "sha256": "db6e4d7ab409a1a2dee0784fcfaf900e8e80fd30649b176cc3a64661152238bb" }, "downloads": -1, "filename": "mongoengine_mate-0.0.3.tar.gz", "has_sig": false, "md5_digest": "017add88897c9e0b9860196686d0922b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17607, "upload_time": "2018-08-03T01:18:24", "url": "https://files.pythonhosted.org/packages/0f/ed/ac13b7d3061f47fb901683b6d6afc7a74d0274567022025e50d48d224044/mongoengine_mate-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "e180e702e923cbfa7f8a6ef0497fc487", "sha256": "0a2150d3cf06826b4030385aa62bdb5410fb8df703015c6f805f2449ec8c35e4" }, "downloads": -1, "filename": "mongoengine_mate-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e180e702e923cbfa7f8a6ef0497fc487", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16648, "upload_time": "2019-09-18T18:58:10", "url": "https://files.pythonhosted.org/packages/81/e2/546e9343aee77702945dba139b1384985f2b487f6a29a93ea98943ee5feb/mongoengine_mate-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1983253ffdc46671825abdf1a964b44", "sha256": "c98ca32639ca0b8b8d85239ebd67274fc9b031c7f0ce09839ce25ae65812b080" }, "downloads": -1, "filename": "mongoengine_mate-0.0.4.tar.gz", "has_sig": false, "md5_digest": "a1983253ffdc46671825abdf1a964b44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15444, "upload_time": "2019-09-18T18:58:12", "url": "https://files.pythonhosted.org/packages/b4/4e/65db378fe3fbee3daafbc0406e4f5fef8fd95b7530278a04902408643544/mongoengine_mate-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e180e702e923cbfa7f8a6ef0497fc487", "sha256": "0a2150d3cf06826b4030385aa62bdb5410fb8df703015c6f805f2449ec8c35e4" }, "downloads": -1, "filename": "mongoengine_mate-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e180e702e923cbfa7f8a6ef0497fc487", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16648, "upload_time": "2019-09-18T18:58:10", "url": "https://files.pythonhosted.org/packages/81/e2/546e9343aee77702945dba139b1384985f2b487f6a29a93ea98943ee5feb/mongoengine_mate-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1983253ffdc46671825abdf1a964b44", "sha256": "c98ca32639ca0b8b8d85239ebd67274fc9b031c7f0ce09839ce25ae65812b080" }, "downloads": -1, "filename": "mongoengine_mate-0.0.4.tar.gz", "has_sig": false, "md5_digest": "a1983253ffdc46671825abdf1a964b44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15444, "upload_time": "2019-09-18T18:58:12", "url": "https://files.pythonhosted.org/packages/b4/4e/65db378fe3fbee3daafbc0406e4f5fef8fd95b7530278a04902408643544/mongoengine_mate-0.0.4.tar.gz" } ] }