-
Notifications
You must be signed in to change notification settings - Fork 29
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. | ||
|
||
|
@@ -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 | ||
|
||
- Support Query Annotations and common SQL AGGREGATE operators | ||
|
||
- 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 | ||
|
||
- Through our custom raw\_aggregate call, MQL operations like Vector Search, Atlas Search, and GeoSpatial querying still yield Django QuerySet resutts, | ||
|
||
|
||
|
||
- **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.
Outdated
Show resolved
Hide resolved
|
||
|
||
## Limitations of 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 | ||
|
||
- No support for GeoDjango | ||
|
||
- Functions such as `Chr`, `ExtractQuarter`, `MD5`, `Now`, `Ord`, `Pad`, `Repeat`, `Reverse`, `Right`, `SHA1`, `SHA224`, `SHA256`, `SHA384`, `SHA512`, and `Sign`. | ||
|
||
- 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. | ||
|
||
- 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`. | ||
|
||
|
||
|
||
#### **Model Limitations** | ||
|
||
- `$vectorSearch` and `$search` and Geospatial index creation through the Django Indexes API is not yet available. | ||
|
||
- 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. | ||
|
||
- Arbitrary or untyped `EmbeddedModelField` is not supported. All fields must derive from an `EmbeddedModel` class. | ||
|
||
|
||
- **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**: | ||
|
||
- `GeneratedField` | ||
- `ImageField` | ||
|
||
|
||
|
||
- **These QuerySet API methods 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` | ||
|
||
- `sqlflush` | ||
|
||
- `sqlsequencereset` | ||
|
||
|
||
|
||
## Future Commitments of Django Backend for MongoDB | ||
|
||
|
@@ -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 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.