Skip to content

v4.13 Release #266

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
merged 5 commits into from
May 14, 2025
Merged

Conversation

jordan-smith721
Copy link
Collaborator

@jordan-smith721 jordan-smith721 commented May 14, 2025

Pull Request Info

PR Reviewing Guidelines

JIRA -

Staging Links

  • reference/migration
  • reference/release-notes
  • Self-Review Checklist

    • Is this free of any warnings or errors in the RST?
    • Did you run a spell-check?
    • Did you run a grammar-check?
    • Are all the links working?
    • Are the facets and meta keywords accurate?
    • Are the page titles greater than 20 characters long and SEO relevant?

    Copy link

    netlify bot commented May 14, 2025

    Deploy Preview for docs-pymongo ready!

    Name Link
    🔨 Latest commit 8152b7f
    🔍 Latest deploy log https://app.netlify.com/projects/docs-pymongo/deploys/6825018a74716b0008e43835
    😎 Deploy Preview https://deploy-preview-266--docs-pymongo.netlify.app
    📱 Preview on mobile
    Toggle QR Code...

    QR Code

    Use your smartphone camera to open QR code link.

    To edit notification comments on pull requests, go to your Netlify project configuration.

    @jordan-smith721 jordan-smith721 marked this pull request as ready for review May 14, 2025 19:30

    * - ``TestFindManyAndEmptyCursor``
    - 74.074 MB/s
    - 112.490 MB/s

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Suggested change
    - 112.490 MB/s
    - 112.490 MB/s

    Performance Benchmarks
    ~~~~~~~~~~~~~~~~~~~~~~

    The following table shows the performance benchmarks for different tasks

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    A short blurb to explain that in almost every case, the new asynchronous API performs better seems helpful here.

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    +1 I was just going to add a comment for the same thing


    .. warning::

    The {+driver-async+} driver does not support Tornado.
    The {+driver-async+} API does not support Tornado.

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    My mistake on this earlier: the new API does support Tornado, as Tornado was made fully compatible in a release some time ago.

    - ``AsyncCursor.each()`` does not exist in the {+driver-async+} driver.
    - ``MotorGridOut.stream_to_handler()`` does not exist in the {+driver-async+} driver.
    - ``AsyncCursor.to_list(0)`` is not valid in the {+driver-async+} driver. Use
    - ``AsyncCursor.each()`` does not exist in the {+driver-async+} api-root.

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Suggested change
    - ``AsyncCursor.each()`` does not exist in the {+driver-async+} api-root.
    - ``AsyncCursor.each()`` does not exist in the {+driver-async+} API.

    @jordan-smith721 jordan-smith721 requested a review from NoahStapp May 14, 2025 19:43
    Copy link

    @R-shubham R-shubham left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    LGTM

    Performance Benchmarks
    ~~~~~~~~~~~~~~~~~~~~~~

    The following table shows the performance benchmarks for different tasks

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    +1 I was just going to add a comment for the same thing


    The {+driver-async+} driver functions similarly to the Motor library, but allows
    The {+driver-async+} API functions similarly to the Motor library, but allows
    for improved latency and throughput due to directly using Python Asyncio instead

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    nit pick - "Asyncio" -> "asyncio"

    Copy link

    @R-shubham R-shubham left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    feel free to merge, once the comment is addressed.

    Copy link
    Collaborator

    @rachel-mack rachel-mack left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    A few suggestions:


    The {+driver-async+} API is designed to be a replacement for the Motor
    library. Motor was created to provide support for Tornado, with asyncio support
    added later. Because of this, Motor provides full asyncio and Tornado support,
    Copy link
    Collaborator

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    For all mentions:

    Suggested change
    added later. Because of this, Motor provides full asyncio and Tornado support,
    added later. Because of this, Motor provides full ``asyncio`` and Tornado support,

    but still relies on a thread pool to perform network operations. In some cases,
    this might lead to performance degradation when using the Motor library. To
    address this issue, the {+driver-async+} API implements asyncio support directly
    into {+driver-short+}.
    Copy link
    Collaborator

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Re: the comments below. I would mention in this intro paragraph that PyMongo Async has better performance in most cases, then link to the performance section.

    Comment on lines 190 to 191
    {+driver-async+} API. We strongly recommend that Motor users migrate to
    the {+driver-async+} API while Motor is still supported.
    Copy link
    Collaborator

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Add a date

    Comment on lines 49 to 50
    - The {+driver-async+} API is generally available. To learn how to migrate
    to the {+driver-async+} API, see the :ref:`pymongo-async-migration` guide.
    Copy link
    Collaborator

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Suggested change
    - The {+driver-async+} API is generally available. To learn how to migrate
    to the {+driver-async+} API, see the :ref:`pymongo-async-migration` guide.
    - The {+driver-async+} API is generally available. To learn how to migrate
    to the {+driver-async+} API from the {+driver-short+} driver or the Motor library, see the :ref:`pymongo-async-migration` guide.

    @jordan-smith721 jordan-smith721 merged commit 32b8bec into mongodb:master May 14, 2025
    5 of 6 checks passed
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    4 participants