{ "info": { "author": "trb", "author_email": "sintrb@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "PMongo\n===============\nA small Python MongoDB Document-Based access engine.\n\nInstall\n===============\n```\n pip install pmongo\n```\n\nUseage\n===============\n```python\n# base use\n\n# import\nfrom pmongo.document import Document\nfrom pmongo.utils import get_mongo_db\n\ndb = get_mongo_db(dbname='test')\n\n\n# define document class\nclass Data(Document):\n db = db\n class Meta:\n ordering = ['age']\n\n\n# new a instance\nd1 = Data()\n\n# set data and save\nd1['grade'] = 2\nd1['name'] = 'Tom'\nd1['age'] = 8\nd1.save()\n\nd2 = Data()\nd2['grade'] = 2\nd2['name'] = 'Lucy'\nd2['age'] = 6\nd2.save()\n\nd3 = Data()\nd3['grade'] = 3\nd3['name'] = 'Jack'\nd3['age'] = 7\nd3.save()\n\n# display document ObjectId\nprint('d1.id:', d1.id)\n\n# query\nprint('grade=2:', Data.objects.find(grade=2).all())\n\n# query count\nprint('count of grade=2:', Data.objects.find(grade=2).count())\n\n# default order by\nprint('default order by', Data.objects.find().all())\nprint('default order by -age', Data.objects.find().order_by('-age').all())\n\n# change\nd2['grade'] = 1\nd2.save()\n\nprint('count of grade=2:', Data.objects.find(grade=2).count())\n\n# delete document\nData.objects.find(grade=2).delete()\n\nprint('-------')\n\n# django like query\nfrom pmongo.query import QueryManger\n\n\nclass Data2(Document):\n db = db\n objects = QueryManger()\n\n\nprint(Data2.objects.create(age=20, name='Tom'))\n\nData2(age=10, name='Jone').save()\nData2(age=15, name='Jack').save()\n\nprint('age>=10:', Data2.objects.find(age__gte=10).count())\nprint('age>11:', Data2.objects.find(age__gt=11).count())\n\nprint('between 10~21', Data2.objects.find(age__between=(10, 21)).count())\n\n# delete age field\nd1.unset(['age'])\nprint(d1)\n\n# update data\nprint('update', Data2.objects.find(age__between=(10, 21)).update(age=25))\n\nprint('between 10~21', Data2.objects.find(age__between=(10, 21)).count())\n\nprint('age=25', Data2.objects.find(age=25).count())\n\nData(name='Robin', books=[{'bid': 1, 'name': 'Python Cookbook'}, {'bid': 2, 'name': 'Java 23 Days'}, {'bid': 3, 'name': 'Android Kit'}]).save()\nData(name='Tom', books=[{'bid': 10, 'name': 'DDL'}]).save()\n\nprint('book of [1]:', Data.objects.find({'books.bid': 1}).count())\nprint('book of [2, 10]:', Data.objects.find({'books.bid': {'$in': [2, 10]}}).count())\n\nprint(Data.objects.find(name='Tom').values(name=0, _id=0).all())\n\nd1 = Data.objects.find().first()\nd2 = Data.objects.find().first()\n\nprint('--------')\n\nprint(id(d1), d1)\nprint(id(d2), d2)\nprint(d1 == d2)\n\nprint(set([d1, d2]))\n\nprint(Data.objects.find().delete())\nprint(Data2.objects.find().delete())\n\n```\n\nOutput:\n\n```\nd1.id: 5bf7ddc8f56f4bc0d639a572\ngrade=2: [Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 2, 'name': 'Lucy', 'age': 6}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a572'), 'grade': 2, 'name': 'Tom', 'age': 8}]]\ncount of grade=2: 2\ndefault order by [Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 2, 'name': 'Lucy', 'age': 6}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a574'), 'grade': 3, 'name': 'Jack', 'age': 7}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a572'), 'grade': 2, 'name': 'Tom', 'age': 8}]]\ndefault order by -age [Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a572'), 'grade': 2, 'name': 'Tom', 'age': 8}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a574'), 'grade': 3, 'name': 'Jack', 'age': 7}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 2, 'name': 'Lucy', 'age': 6}]]\ncount of grade=2: 1\n-------\nData2[{'age': 20, 'name': 'Tom', '_id': ObjectId('5bf7ddc8f56f4bc0d639a575')}]\nage>=10: 3\nage>11: 2\nbetween 10~21 3\nData[{'grade': 2, 'name': 'Tom', '_id': ObjectId('5bf7ddc8f56f4bc0d639a572')}]\nupdate 3\nbetween 10~21 0\nage=25 3\nbook of [1]: 1\nbook of [2, 10]: 2\n[Data[{'books': [{'bid': 10, 'name': 'DDL'}]}]]\n--------\n4475195856 Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 1, 'name': 'Lucy', 'age': 6}]\n4475196976 Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 1, 'name': 'Lucy', 'age': 6}]\nFalse\n{Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 1, 'name': 'Lucy', 'age': 6}], Data[{'_id': ObjectId('5bf7ddc8f56f4bc0d639a573'), 'grade': 1, 'name': 'Lucy', 'age': 6}]}\n4\n3\n```\n\n\nCHANGES\n===============\n1.0.0\n\n- first version\n\n\n1.0.6\n\n- support \"create, update\"\n\n1.0.8\n\n- fix find() with dictionary param\n\n1.0.9\n\n- suport values()\n\n1.0.10\n\n- suport Meta ordering\n\n1.0.11\n\n- remove __eq__ of Document\n\n1.0.12\n\n- support Python 3.x\n\n1.0.14\n\n- support update_fields when save a document\n\n1.0.16\n\n- fix $lte date bug", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sintrb/pmongo/", "keywords": "mongo,django,orm,nosql", "license": "", "maintainer": "", "maintainer_email": "", "name": "pmongo", "package_url": "https://pypi.org/project/pmongo/", "platform": "", "project_url": "https://pypi.org/project/pmongo/", "project_urls": { "Homepage": "https://github.com/sintrb/pmongo/" }, "release_url": "https://pypi.org/project/pmongo/1.0.16/", "requires_dist": null, "requires_python": "", "summary": "A small Python MongoDB Document-Based access engine.", "version": "1.0.16" }, "last_serial": 5431663, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "c763f5acf7f74de394818d18a2d6aaa2", "sha256": "14672fc8b3c2fd17d077ffafdb071ba861ad2804eb738a9b6e98b36c62cfc901" }, "downloads": -1, "filename": "pmongo-1.0.0.tar.gz", "has_sig": false, "md5_digest": "c763f5acf7f74de394818d18a2d6aaa2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3385, "upload_time": "2018-06-21T14:12:53", "url": "https://files.pythonhosted.org/packages/80/e1/a8da16e4f00db8318e510c103397537b3d59d48b9eef19c989c1e063a75a/pmongo-1.0.0.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "cd82a44d884a5dc188a2eda21c1fc2cd", "sha256": "67f87a43275e2f2516a7d76abf2ade038b5168d42f7a5cbec91c672532683455" }, "downloads": -1, "filename": "pmongo-1.0.11.tar.gz", "has_sig": false, "md5_digest": "cd82a44d884a5dc188a2eda21c1fc2cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4845, "upload_time": "2018-08-15T03:46:28", "url": "https://files.pythonhosted.org/packages/c5/8c/3c174e0aaf0af469234a701b525b06f49869b73827ff542fe51e063fa848/pmongo-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "0482efe08bb3051e300ec4d29993d99d", "sha256": "b04b9eb7762c4ea01116c5a5df6d709c466498764da99f14325fa0e6c84e1192" }, "downloads": -1, "filename": "pmongo-1.0.12.tar.gz", "has_sig": false, "md5_digest": "0482efe08bb3051e300ec4d29993d99d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4849, "upload_time": "2018-11-23T11:02:59", "url": "https://files.pythonhosted.org/packages/d6/fe/b31a73282983617783fc0a885fd1e6ebbf396d3711f7587c5e72cdf10f56/pmongo-1.0.12.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "f0c8342671d3ed47cbb4ead318c13ba1", "sha256": "aa30b1a1bda375098c011e35f902646025f017c9249e14baacbbc7821b60b838" }, "downloads": -1, "filename": "pmongo-1.0.14.tar.gz", "has_sig": false, "md5_digest": "f0c8342671d3ed47cbb4ead318c13ba1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5446, "upload_time": "2018-12-26T14:08:35", "url": "https://files.pythonhosted.org/packages/dc/12/42b0cd271179f4dc849dadf535fe0815eeb27580af336bf46626c698581c/pmongo-1.0.14.tar.gz" } ], "1.0.15": [ { "comment_text": "", "digests": { "md5": "1934886e531eb43150947950bc5560bf", "sha256": "c88a1d16ca965fec807603c7c60c2dbbd1c5cd2d370835f630471fd9df946454" }, "downloads": -1, "filename": "pmongo-1.0.15.tar.gz", "has_sig": false, "md5_digest": "1934886e531eb43150947950bc5560bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5452, "upload_time": "2018-12-26T14:15:25", "url": "https://files.pythonhosted.org/packages/5f/bf/275b9c6aa06f86f97ee82835ef88d25699d3d0d2b1356e021a2bcb7c0c26/pmongo-1.0.15.tar.gz" } ], "1.0.16": [ { "comment_text": "", "digests": { "md5": "c52e6cda922f253d7fd52f94599126c4", "sha256": "c80cd77a1bb11578cef0dfedf41946c3d0b8fd71117d642f9ebdf11f8918eb43" }, "downloads": -1, "filename": "pmongo-1.0.16.tar.gz", "has_sig": false, "md5_digest": "c52e6cda922f253d7fd52f94599126c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5521, "upload_time": "2019-06-21T16:21:54", "url": "https://files.pythonhosted.org/packages/29/bc/d13564b23518d275c57b7281f029b2ebb83703006c0dcb8d5868fff2fae9/pmongo-1.0.16.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "199e02b175e7c9d8502cee5246f8abda", "sha256": "479b57089a5a679c700531dcc26908d3f5c956e688eda3387d066e029f1ba3c1" }, "downloads": -1, "filename": "pmongo-1.0.2.tar.gz", "has_sig": false, "md5_digest": "199e02b175e7c9d8502cee5246f8abda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3692, "upload_time": "2018-06-21T14:17:43", "url": "https://files.pythonhosted.org/packages/d2/3f/b181638bac3e03a9135b4a8114d5a84c0ecc5d74d80cc6a68d1ddaeff6ce/pmongo-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "fd7ff4036da20853dcc6a28f683454dd", "sha256": "caafad4a95035fefd500ce7846feaf53dc5417b1c571812abf49102795f68af9" }, "downloads": -1, "filename": "pmongo-1.0.3.tar.gz", "has_sig": false, "md5_digest": "fd7ff4036da20853dcc6a28f683454dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3809, "upload_time": "2018-06-23T11:13:45", "url": "https://files.pythonhosted.org/packages/0d/15/dab3e9e6b68be09caa063478c8150f036b25da25476592e7c4234b56dcdd/pmongo-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "9942fb33e5d2aa505b2b229f4ca3bc9b", "sha256": "cc2fcbb3125dd50d4715f7fe761c6fcf2805bdd274dd67ed483774d54fab11c8" }, "downloads": -1, "filename": "pmongo-1.0.4.tar.gz", "has_sig": false, "md5_digest": "9942fb33e5d2aa505b2b229f4ca3bc9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3824, "upload_time": "2018-06-23T18:32:54", "url": "https://files.pythonhosted.org/packages/33/a7/7726dc31b9088355a6a1a6645d781a3b35601f5bf18e9bc26cd78d870428/pmongo-1.0.4.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "87df793251c8396fa2a35f02359969b5", "sha256": "9edd87754e4a4d64e997f6c1618b0604afae2a70738b2327c9115ab2fb5d7120" }, "downloads": -1, "filename": "pmongo-1.0.6.tar.gz", "has_sig": false, "md5_digest": "87df793251c8396fa2a35f02359969b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4166, "upload_time": "2018-07-03T02:25:06", "url": "https://files.pythonhosted.org/packages/f7/0b/70d148e5f5e385e407b93bfcc6f33ccc774de3d73a393215e98431d25fed/pmongo-1.0.6.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "6990b906e80ba5cb7eb20048d439b4a6", "sha256": "c332635908f63116f15e84034d263cec63881cf0514cd8a88c0cc8e09dc1ade8" }, "downloads": -1, "filename": "pmongo-1.0.8.tar.gz", "has_sig": false, "md5_digest": "6990b906e80ba5cb7eb20048d439b4a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4206, "upload_time": "2018-07-27T10:30:56", "url": "https://files.pythonhosted.org/packages/91/e6/a5eaf840ef38ae3dee8e7f609079549a3d876b7766dc99ccd6712aeb0195/pmongo-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "50310ae32cca1d6d088289f30e6ef3bb", "sha256": "e7e880e929e2c8acc6f9e8e1076113d2de8852f87433d62dbca8805cb789d8ab" }, "downloads": -1, "filename": "pmongo-1.0.9.tar.gz", "has_sig": false, "md5_digest": "50310ae32cca1d6d088289f30e6ef3bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4291, "upload_time": "2018-07-28T02:32:50", "url": "https://files.pythonhosted.org/packages/dd/34/73f459286202eb1ec8fb22ca76e49724830ca9f70511e648e2005cda8dab/pmongo-1.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c52e6cda922f253d7fd52f94599126c4", "sha256": "c80cd77a1bb11578cef0dfedf41946c3d0b8fd71117d642f9ebdf11f8918eb43" }, "downloads": -1, "filename": "pmongo-1.0.16.tar.gz", "has_sig": false, "md5_digest": "c52e6cda922f253d7fd52f94599126c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5521, "upload_time": "2019-06-21T16:21:54", "url": "https://files.pythonhosted.org/packages/29/bc/d13564b23518d275c57b7281f029b2ebb83703006c0dcb8d5868fff2fae9/pmongo-1.0.16.tar.gz" } ] }