-
Notifications
You must be signed in to change notification settings - Fork 27
Revised README #222
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
Revised README #222
Changes from 1 commit
e1586f4
3234a85
f869a30
846c98f
6efce63
0d662e0
9ef0714
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,13 +8,7 @@ explore and build. The best way to share this is via our [MongoDB Community Foru | |
|
||
The development version of this package supports Django 5.0.x. To install it: | ||
|
||
`pip install django-mongodb-backend` | ||
|
||
### Resources | ||
|
||
Check back soon as we aim to provide more links that will dive deeper into our library! | ||
|
||
* [Developer Notes](DEV_NOTES.md) | ||
`pip install django-mongodb-backend~=5.0.0` | ||
|
||
|
||
## Quickstart | ||
|
@@ -52,12 +46,6 @@ Then, visit http://127.0.0.1:8000/. This page displays a "Congratulations!" mess | |
|
||
## Capabilities of Django Backend for MongoDB | ||
|
||
- **Database Connectivity** | ||
|
||
- Directly tune MongoDB connection settings within your Django configuration\! | ||
- Work against a persisted cloud instance of MongoDB for free\! | ||
|
||
|
||
- **Model MongoDB Documents Through Django’s ORM** | ||
|
||
- Translate Django model instances to MongoDB documents. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Translate is a strange work. How about "Store Django model instances as MongoDB documents."? |
||
|
@@ -75,12 +63,11 @@ Then, visit http://127.0.0.1:8000/. This page displays a "Congratulations!" mess | |
|
||
|
||
- **Querying Data** | ||
|
||
- Querying API powered through the amazing MongoDB Aggregation Pipeline | ||
|
||
- Supports most functions of the Django QuerySet API | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. chop "functions" |
||
- Support Query Annotations and common SQL AGGREGATE operators | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What are "Query Annotations"? What does it mean to support SQL aggregate operators on MongoDB? I guess you mean QuerySet.annotate() and QuerySet.aggregate()... you already said most of the QuerySet API is supported.... |
||
- We support foreign keys and execute JOIN operations all in 1 database call | ||
- Through our custom raw\_aggregate call, MQL operations like Vector Search, Atlas Search, and GeoSpatial querying still yield Django QuerySet results\! | ||
Support foreign key usage and execute JOIN operations | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think "Supports" is the verb tense to use. Dash was inadvertently deleted. Add period. |
||
- Through our custom raw\_aggregate call, MQL operations like Vector Search, Atlas Search, and GeoSpatial querying still yield Django QuerySet resutts, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "A custom |
||
|
||
|
||
- **Administrator Dashboard & Authentication** | ||
|
@@ -89,10 +76,64 @@ Then, visit http://127.0.0.1:8000/. This page displays a "Congratulations!" mess | |
- Fully integrated with Django's authentication framework. | ||
- Supports native user management features like creating users and sessions. | ||
Jibola marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## Limitations of django-mongodb-backend | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Django MongoDB Backend" |
||
|
||
- **Management Commands** | ||
|
||
- Use commands like `migrate`, `makemigrations`, `flush`, `sqlmigrate`, many more. | ||
- Database Variables `ATOMIC_REQUESTS`, `AUTOCOMMIT`, `CONN_HEALTH_CHECKS`, `TIME_ZONE` not supported | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. variables -> settings |
||
- No support for GeoDjango | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "is not supported." |
||
- Functions such as `Chr`, `ExtractQuarter`, `MD5`, `Now`, `Ord`, `Pad`, `Repeat`, `Reverse`, `Right`, `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512`, and `Sign`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Database functions ... are not supported. |
||
- The `tzinfo` parameter of the `Trunc` database functions does not work properly because MongoDB converts the result back to UTC. | ||
- Schema Validation is not enforced. Refer to MongoDB documentation for how to enforce schema validation. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nobody said it was supported. Give a more helpful pointer if this really needs to be said? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I'd definitely prefer linking to unsupported features rather than listing them here. |
||
- Django DDL Transactions are not supported. | ||
- The `migrate --fake-initial` command is not supported due to the inability to introspect MongoDB collection schema. | ||
- The asynchronous functionality of the Django API has not yet been tested. | ||
- `BSONRegExp` has no custom field class. It is best represented as a `CharField`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are we going to implement it? I don't think we need to mention it. |
||
|
||
|
||
#### **Model Limitations** | ||
|
||
- `$vectorSearch` and `$search` and Geospatial index creation through the Django Indexes API is not yet available. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is already included in the roadmap, and it's not a core Django feature, so I wouldn't expect it if it wasn't mentioned. |
||
- Updating indexes in `EmbeddedModels` do not work after the first table creation. | ||
|
||
- **ArrayField** | ||
- Does not support `EmbeddedModel` within `ArrayField`. | ||
|
||
- **EmbeddedModel** | ||
- Limited schema change support (no changing of embedded models). | ||
- Embedded documents cannot take Django ForeignKeys. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it's "all relational fields." This is already documented much more clearly in the docs. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I will link to the embedded-model.rst |
||
- Arbitrary or untyped `EmbeddedModelField` is not supported. All fields must derive from an `EmbeddedModel` class. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is no expectation of this though. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a common pattern for MongoDB users, though. |
||
|
||
- **JSONField** | ||
- There is no way to distinguish between a JSON "null" and a SQL null in specific queries. | ||
- Some queries with Q objects, e.g., `Q(value__foo="bar")`, don't work properly, particularly with `QuerySet.exclude()`. | ||
- Filtering for a `None` key, e.g., `QuerySet.filter(value__j=None)`, incorrectly returns objects where the key doesn't exist. | ||
|
||
- **DateTimeField** | ||
- No support for microsecond granularity. | ||
|
||
- **DurationField**: | ||
- Stores milliseconds rather than microseconds. | ||
|
||
- **Unavailable Fields**: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Unsupported model fields |
||
- `GeneratedField` | ||
- `ImageField` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ImageField is supported |
||
|
||
|
||
- **These QuerySet API methods do not work** | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd rather say "are unsupported" than "do not work." |
||
|
||
- `distinct()` | ||
- `dates()` | ||
- `datetimes()` | ||
- `prefetch_related()` | ||
- `extra()` | ||
- `QuerySet.delete()` and `update()` do not support queries that span multiple collections. | ||
|
||
|
||
- **Django Management Commands that do not work** | ||
- `createcachetable` | ||
- `inspectdb` | ||
- `optimizemigration` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. optimizemigration works (has nothing to do with the database backend) |
||
- `sqlflush` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we can omit this since it can't be supported and this isn't a SQL backend. |
||
- `sqlsequencereset` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. sqlsequencereset is not applicable since this backend doesn't support AutoField. |
||
|
||
|
||
## Future Commitments of Django Backend for MongoDB | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. aside: I think the roadmap would be better stored on a wiki page or something so it can be more easily updated, but if you have to put it here for now, okay. |
||
|
@@ -133,6 +174,7 @@ Then, visit http://127.0.0.1:8000/. This page displays a "Congratulations!" mess | |
|
||
These future capabilities are intended to enhance the functionality of the Django Backend for MongoDB as it progresses towards a General Availability (GA) release. If you have any more specific questions or need further details, feel free to ask\! | ||
|
||
|
||
### Issues & Help | ||
|
||
We're glad to have such a vibrant community of users of Django MongoDB Backend. We recommend seeking support for general questions through the MongoDB Community Forums. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. link to the forums again? |
||
|
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 don't believe this works (or is what we want people to use). Did you see the version I proposed?
Uh oh!
There was an error while loading. Please reload this page.
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/~=/==/
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.
Hadn't seen all the comments yet. Reviewing everything now and applying appropriate changes.