Uploaded image for project: 'Python Integrations'
  1. Python Integrations
  2. INTPYTHON-347

Create the Public Preview release of the MongoDB Backend for Django

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Critical - P2 Critical - P2
    • None
    • Affects Version/s: None
    • Component/s: django
    • None
    • Python Drivers
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • To Do
    • [Django] Public Preview of django-mongodb
    • 21
    • 9
    • 21
    • 100
    • Hide

       

      Engineer(s): Jib, Alex

      2024-11-22

      • Known risks or blockers:
        • Still awaiting to reclaim django-mongodb package name
          • We've placed a poll in #dbx-python to help determine backup name. These are the two strongest contenders 
            • django-mongodb-backend
            • django-pymongo
      • Completed over the last 2 weeks:
        • Finished Scope Document for Django for Public Preview
        • "Escape Hatch" functionality tested and checked in
        • Implemented support for partial indexes
        • Various bug fixes and improvements
        • Embedded Document work
          • Finished querying; working on indexing & migration support
      • Focus over the next 2 weeks
        • Finish Embedded Document work
        • Start Array scope document
        • Create benchmarking repository for functions outside of JOIN operations
          • Run on M30 dev/qa cluster
      • Anything else to share?
        • Found clunky implementation on connecting to an Atlas cluster via settings. PR tracking work to fix here

       


       

      Engineer(s): Jib, Alex

      2024-11-08

      • Known risks or blockers:
        • Still awaiting to reclaim the django-mongodb package name
      • Completed over the last 2 weeks:
        • Formalized decision to do keep the JOIN logic.
        • Prepped several items to make django-mongodb SSDLC compliant.
          • repo now runs CI in evergreen as well
        • Finished design document for Embedded Document implementation (for complex query cases)
        • Triaged and running every triaged python test suite
      • Focus over the next 2 weeks
        • Enable our "escape hatch" functionality using QuerySet.raw_mql
        • Merging Embedded Document and List MongoDB field abstractions
          • Working on querying 
      • Anything else to share?
        • We've learned that the "escape hatch" functionality will have limitations. If any operation mutates the resulting model, it will fail to build a query set. This is behavior that also happens in the SQL analogue. The solution for users that want to use something like vectorSearch for this solution would be using the underlying PyMongo client. 

       


      Engineer(s): Jib, Alex
      2024-10-25

      • What was completed over the last two weeks?
        • Created technical document to highlight and facilitate the conversation around JOIN vs embedded (timeline for decision is by EOW Nov 8)
        • Ran benchmarks comparing performance of public preview on varied document sizes
        • Various test fixes and performance improvements
          • Improved JOIN function comparison
          • Fixed test regressions
          • Added custom tests for Django-MongoDB specific items
      • What's the focus over the next two weeks?
        • Enable our "escape hatch" functionality using QuerySet.raw_mql
        • Merging Embedded Document and List MongoDB field abstractions
      • Impediments encountered over the last two weeks?
        • Initial benchmarking tool gave invalid data. Delayed results and required making a net-new benchmarker.
      Show
        Engineer(s): Jib, Alex 2024-11-22 Known risks or blockers: Still awaiting to reclaim django-mongodb package name We've placed a poll in #dbx-python to help determine backup name. These are the two strongest contenders  django-mongodb-backend django-pymongo Completed over the last 2 weeks: Finished Scope Document for Django for Public Preview "Escape Hatch" functionality tested and checked in Implemented support for partial indexes Various bug fixes and improvements Embedded Document work Finished querying; working on indexing & migration support Focus over the next 2 weeks Finish Embedded Document work Start Array scope document Create benchmarking repository for functions outside of JOIN operations Run on M30 dev/qa cluster Anything else to share? Found clunky implementation on connecting to an Atlas cluster via settings. PR tracking work to fix here     Engineer(s): Jib, Alex 2024-11-08 Known risks or blockers: Still awaiting to reclaim the django-mongodb package name Completed over the last 2 weeks: Formalized decision to do keep the JOIN logic. Prepped several items to make django-mongodb SSDLC compliant. repo now runs CI in evergreen as well Finished design document for Embedded Document implementation (for complex query cases) Triaged and running every triaged python test suite Focus over the next 2 weeks Enable our "escape hatch" functionality using QuerySet.raw_mql Merging Embedded Document and List MongoDB field abstractions Working on querying  Anything else to share? We've learned that the "escape hatch" functionality will have limitations. If any operation mutates the resulting model, it will fail to build a query set. This is behavior that also happens in the SQL analogue. The solution for users that want to use something like vectorSearch for this solution would be using the underlying PyMongo client.    Engineer(s): Jib, Alex 2024-10-25 What was completed over the last two weeks? Created technical document to highlight and facilitate the conversation around JOIN vs embedded (timeline for decision is by EOW Nov 8) Ran benchmarks comparing performance of public preview on varied document sizes Various test fixes and performance improvements Improved JOIN function comparison Fixed test regressions Added custom tests for Django-MongoDB specific items What's the focus over the next two weeks? Enable our "escape hatch" functionality using QuerySet.raw_mql Merging Embedded Document and List MongoDB field abstractions Impediments encountered over the last two weeks? Initial benchmarking tool gave invalid data. Delayed results and required making a net-new benchmarker.

      Summary

      Enable current Django users to build POC projects using the most commonly used features of Django and MongoDB and provide us feedback on usability, functionality or any major issue encountered.

      Motivation

      Who is the affected end user?

      Developers

      How does this affect the end user?

      They will have a new backend tool to use. The MongoDB Backend for Django

      How likely is it that this problem or use case will occur?

      There are some users of MongoDB who uses Django with different combination of tools such as with PyMongo driver, or 3rd party tools such as Djongo or MongoEngine. Going forward, we expect those users to work with the integration directly and the PyMongo driver and not rely on 3rd party tools.

      If the problem does occur, what are the consequences and how severe are they?

      N/A

      Is this issue urgent?

      Yes, the timeline for Public Preview release is set for mid-to-late January 2025

      Is this ticket required by a downstream team?

      No

      Is this ticket only for tests?

      No

      Cast of Characters

      Engineering Lead: jib.adegunloye@mongodb.com 
      Document Author: shubham.ranjan@mongodb.com jib.adegunloye@mongodb.com alex.clark@mongodb.com 
      POCers: jib.adegunloye@mongodb.com shubham.ranjan@mongodb.com alex.clark@mongodb.com 
      Product Owner: shubham.ranjan@mongodb.com 
      Program Manager: keana.moutra@mongodb.com 
      Stakeholders:

      Channels & Docs

      Slack: #django-mongodb

      Scope Document

      [Technical Design Document|some.url]

            Assignee:
            jib.adegunloye@mongodb.com Jib Adegunloye
            Reporter:
            jib.adegunloye@mongodb.com Jib Adegunloye
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: