diff --git a/xsnippet_api/database.py b/xsnippet_api/database.py index 27f9e56..9639cd8 100644 --- a/xsnippet_api/database.py +++ b/xsnippet_api/database.py @@ -11,6 +11,7 @@ from motor.motor_asyncio import AsyncIOMotorClient from pymongo.son_manipulator import SONManipulator +import pymongo def create_connection(conf, loop=None): @@ -36,6 +37,16 @@ def create_connection(conf, loop=None): # is doing this implicitly for us on application level. db.add_son_manipulator(_AutoincrementId()) + # ensure necessary indexes exist + db.snippets.create_index("author_id", + background=True) + db.snippets.create_index("tags", + background=True) + db.snippets.create_index([("created_at", pymongo.DESCENDING)], + background=True) + db.snippets.create_index([("updated_at", pymongo.DESCENDING)], + background=True) + return db