-
Notifications
You must be signed in to change notification settings - Fork 6
DOCSP-48184: Rework limitations and upcoming #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
DOCSP-48184: Rework limitations and upcoming #27
Conversation
✅ Deploy Preview for docs-django ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
source/limitations-upcoming.txt
Outdated
not supported. Instead, use ``ObjectIdField``. | ||
- *Unsupported*. | ||
|
||
* - ``BSONRegExp`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a field but a BSON data type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved to the Mongodb "Data Type Support" section
source/limitations-upcoming.txt
Outdated
|
||
Performance | ||
~~~~~~~~~~~ | ||
* - ``compilemessages`` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's strange to list all the management commands as many of them do not interact with the database.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which commands do you think are relevant to include?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As in other sections, including only the unsupported commands is sufficient.
source/limitations-upcoming.txt
Outdated
* - `Django-filter <https://django-filter.readthedocs.io/en/stable/>`__ | ||
- *Unsupported*. | ||
- ✓ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I know, it is supported because @aclark4life didn't identify any needed changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Following up with him!
source/limitations-upcoming.txt
Outdated
* - Making migrations | ||
- ✓ | ||
- ✓ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is strange to list "Making migrations, Recording schema history, Storing migration files". These are the basics of the migrations system, and we wouldn't have any support without them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll remove
- *Full Support Not Planned*. However, we plan to address the | ||
``Q`` object and ``None`` key filtering limitations in a post-GA release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure they can be. \cc @WaVEV
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is hard to implement; all operators must consider the null factor and handle it separately, given the nature of null in SQL. Null values behave as either false or true in filtering. Sometimes a filter filters for when a condition is met, and other times for when it is not. As a result, having a condition C
and its negation ~C
can yield overlapping results between both queries. This behavior occurs in SQL but not in MongoDB.
source/limitations-upcoming.txt
Outdated
* - ``as_manager()`` | ||
- ✓ | ||
- ✓ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't a method that interacts with the database. Do we need to list every supported method? You didn't list every supported model field, so there seems to be a slight inconsistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since there's already a list of all supported model fields in the Models guide, I linked out to it instead of repeating them. But I agree that this table is pretty long; I can just list the unsupported/partially supported, then link to the Django QuerySet docs and say that we support all other methods not mentioned?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good to me.
source/limitations-upcoming.txt
Outdated
* - Atlas Search and Atlas Vector Search indexes | ||
- *Partially Supported*. You cannot use the Django | ||
Indexes API to create these indexes, but you can use | ||
the PyMongo Driver by :ref:`exposing your MongoClient <django-client-operations>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By this definition (partial support = can do it in pymongo), I'd think nearly everything that's unsupported would be considered partially supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed to "Unsupported" but kept the information about exposing the MongoClient
source/limitations-upcoming.txt
Outdated
* - ``distinct()`` | ||
- *Unsupported*. | ||
- *Unsupported*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Correction: distinct() is supported.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall looks great, just left a comment to format differently for readability.
|
||
- ``DurationField`` | ||
.. list-table:: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
S: suggest adding a stub column to all tables to separate the feature name from the support columns
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we follow the same template on the limitation page as Laravel?
One of the things I noticed from users who read this page was - the way we had a big list of not supported feature..some user walked away with the impression that there is a lot that need to be done vs..a great deal of feature is supported & here is things that is in works, or has limitations.
For example, I’m reading indexes section - may be we can say all index type is supported except these “3”. Kind of baking in a full picture. We may not need to go in details of every supported features and can use blanket statement like, all of Django's queryset function is known to be supported except a,b,c.
Hi Shubham! Can you clarify what you mean by same template - the same two-column table format? After the GA release the tables will have two columns (feature and availability), but for now I think it makes more sense to separate Public Preview and GA availability. See this thread for a discussion about that. Or do you mean the same subheaders? I reused the subheaders that applied (Query, Database, Migration support) but most of the Laravel sections are Laravel-specific (Eloquent Relationships, Mutator, Model Factory, etc). But let me know if there's something I'm missing from the Laravel page. And yes, I can rework each section to just include what we don’t support with a statement like “everything is supported except the following”, similar to what I have in Data Type, Field Type, etc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding this to close #31
- *Unsupported*. The ``BigAutoField`` and ``SmallAutoField`` types are also | ||
not supported. Instead, use ``ObjectIdField``. | ||
- *Unsupported*. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add this here in favour of #31
* - ``CompositePrimaryKey`` | |
- *Unsupported*. | |
- *Unsupported*. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updates for Django 5.2 could be deferred until after this PR, but changes for Django 5.2 shouldn't be mixed in with this refactor. For one, mixing concerns like that will make backporting more difficult.
* - ``bulk_update()`` | ||
- *Unsupported*. | ||
- *Unsupported*. | ||
|
||
* - ``dates()`` | ||
- *Unsupported*. | ||
- *Unsupported*. | ||
|
||
* - ``datetimes()`` | ||
- *Unsupported*. | ||
- *Unsupported*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bulk_update/dates/datetimes are all supported.
* - ``JOIN`` operations | ||
- *Partially Supported*. You can use MongoDB's :manual:`$lookup </reference/operator/aggregation/lookup/>` | ||
pipeline stage to perform joins. | ||
- *Full Support Not Planned*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The backend automatically uses $lookup. There is nothing for the user to do. I'm not sure why this is considered "partial support".
* - Cached data storage | ||
- *Unsupported*. | ||
- ✓ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Supported as per 39d9ffe.
* - ``createcachetable`` | ||
- *Unsupported*. | ||
- *Unsupported*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add note per 39d9ffe.
- *Partially Supported*. The ``tzinfo`` parameter doesn't work | ||
properly because MongoDB converts the result back to UTC. | ||
- *Full Support Not Planned*. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update per 39d9ffe.
Pull Request Info
PR Reviewing Guidelines
JIRA - https://jira.mongodb.org/browse/DOCSP-48184
Staging Links
Self-Review Checklist