-
Notifications
You must be signed in to change notification settings - Fork 7
DOCSP-50489: EmbeddedModelArrayField support #37
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
Merged
norareidy
merged 5 commits into
mongodb:master
from
norareidy:DOCSP-50489-embeddedmodelarrayfield
Jun 6, 2025
Merged
Changes from 3 commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -168,9 +168,10 @@ The following table describes supported BSON field types and their | |||||||||||||||||
in this guide. | ||||||||||||||||||
|
||||||||||||||||||
* - ``Object`` | ||||||||||||||||||
- ``EmbeddedModelField`` | ||||||||||||||||||
- | Stores embedded documents. To learn more about using this field | ||||||||||||||||||
with {+django-odm+}, see the :ref:`django-models-embedded` section in this guide. | ||||||||||||||||||
- ``EmbeddedModelField`` or ``EmbeddedModelArrayField`` | ||||||||||||||||||
- | Stores one or multiple embedded documents. To learn more about using these fields | ||||||||||||||||||
with {+django-odm+}, see the :ref:`django-models-embedded` and :ref:`django-models-embedded-array` | ||||||||||||||||||
sections. | ||||||||||||||||||
|
||||||||||||||||||
* - ``ObjectId`` | ||||||||||||||||||
- ``ObjectIdField`` | ||||||||||||||||||
|
@@ -452,6 +453,36 @@ and modifies the ``Movie`` model to include the ``EmbeddedModelField``: | |||||||||||||||||
To learn how to query data stored in an ``EmbeddedModelField``, see | ||||||||||||||||||
:ref:`django-query-embedded` in the Specify a Query guide. | ||||||||||||||||||
|
||||||||||||||||||
.. _django-models-embedded-array: | ||||||||||||||||||
|
||||||||||||||||||
Use an EmbeddedModelArrayField | ||||||||||||||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||||||||||||||
|
||||||||||||||||||
You can use an ``EmbeddedModelArrayField`` to represent a MongoDB ``Object`` | ||||||||||||||||||
that stores an array of document values. Each document in the array corresponds | ||||||||||||||||||
to a {+django-odm+} ``EmbeddedModelField`` value. To create an ``EmbeddedModelArrayField``, | ||||||||||||||||||
use the ``EmbeddedModelArrayField()`` class constructor and pass the following arguments: | ||||||||||||||||||
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. S: there might be confusion between document values and values that are documents
Suggested change
|
||||||||||||||||||
|
||||||||||||||||||
- ``embedded_model``: Specifies the model stored in each array item. | ||||||||||||||||||
|
||||||||||||||||||
- ``max_size``: *(Optional)* Specifies the maximum size of the array. | ||||||||||||||||||
|
||||||||||||||||||
Example | ||||||||||||||||||
``````` | ||||||||||||||||||
|
||||||||||||||||||
This example adds an ``EmbeddedModelArrayField`` value to the model created in | ||||||||||||||||||
the :ref:`Define a Model example <django-models-define-ex>` in this | ||||||||||||||||||
guide. This ``cast`` field stores an array of embedded ``Actor`` models. | ||||||||||||||||||
The following code defines the ``Actor`` model and modifies the ``Movie`` model | ||||||||||||||||||
to include the ``EmbeddedModelArrayField``: | ||||||||||||||||||
|
||||||||||||||||||
.. literalinclude:: /includes/model-data/models.py | ||||||||||||||||||
:start-after: start-embedded-array-field | ||||||||||||||||||
:end-before: end-embedded-array-field | ||||||||||||||||||
:language: python | ||||||||||||||||||
:copyable: | ||||||||||||||||||
:emphasize-lines: 5, 15 | ||||||||||||||||||
|
||||||||||||||||||
Additional Information | ||||||||||||||||||
---------------------- | ||||||||||||||||||
|
||||||||||||||||||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Nit: In the Mongo parlance, isn't an "object" typically called a "document" and if so an
EmbeddedModelArrayField
could also be called a "document of documents" ?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.
Yeah I think document is the better word, changed