Skip to content
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

DOCSP-45200: Change streams #123

Merged

Conversation

norareidy
Copy link
Collaborator

@norareidy norareidy commented Jan 9, 2025

Pull Request Info

PR Reviewing Guidelines

JIRA - https://jira.mongodb.org/browse/DOCSP-45200

Staging Links

  • read/change-streams
  • read
  • 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?

    Copy link

    netlify bot commented Jan 9, 2025

    Deploy Preview for docs-ruby ready!

    Name Link
    🔨 Latest commit 7b68ed7
    🔍 Latest deploy log https://app.netlify.com/sites/docs-ruby/deploys/678aa50389ea930008f03e94
    😎 Deploy Preview https://deploy-preview-123--docs-ruby.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 site configuration.

    Copy link
    Contributor

    @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.

    LGTM

    @norareidy norareidy requested a review from jamis January 9, 2025 18:38
    Comment on lines 20 to 24
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Using stream#each will be simpler, and more idiomatic:

    Suggested change
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    stream.each do |doc|
    puts doc
    break if doc['operationType'] == 'invalidate'
    end

    Comment on lines 39 to 43
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Explicitly converting the stream to an enum is usually a hint that you're doing something the hard way. Prefer stream#each when iterating over a stream:

    Suggested change
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    stream.each do |doc|
    puts doc
    break if doc['operationType'] == 'invalidate'
    end

    Comment on lines 50 to 54
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Suggested change
    enum = stream.to_enum
    while (doc = enum.next)
    puts doc
    break if doc['operationType'] == 'invalidate'
    end
    stream.each do |doc|
    puts doc
    break if doc['operationType'] == 'invalidate'
    end

    Comment on lines 28 to 31
    When using the {+driver-short+}, you can call the ``watch`` method to return a
    ``Mongo::Collection::View::ChangeStream`` object. Then, you can convert the change
    stream to an ``Enumerator`` object and iterate through its content to monitor data
    changes, such as updates, insertions, and deletions.
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    There's no need to convert the change stream to an enumerator, as the stream is already iterable. Maybe something like the following?

    Suggested change
    When using the {+driver-short+}, you can call the ``watch`` method to return a
    ``Mongo::Collection::View::ChangeStream`` object. Then, you can convert the change
    stream to an ``Enumerator`` object and iterate through its content to monitor data
    changes, such as updates, insertions, and deletions.
    When using the {+driver-short+}, you can call the ``watch`` method to return a
    ``Mongo::Collection::View::ChangeStream`` object. Then, you can iterate through
    its content to monitor data changes, such as updates, insertions, and deletions.

    Copy link
    Collaborator Author

    Choose a reason for hiding this comment

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

    I like this wording, updated! Sorry about that confusion

    Comment on lines 64 to 65
    The following example opens a change stream on the ``restaurants`` collection,
    converts the change stream to an ``Enumerator``, and outputs changes as they occur:
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    As mentioned, there's no need to convert the stream to an enumerator.

    Suggested change
    The following example opens a change stream on the ``restaurants`` collection,
    converts the change stream to an ``Enumerator``, and outputs changes as they occur:
    The following example opens a change stream on the ``restaurants`` collection
    and outputs changes as they occur:

    @norareidy norareidy merged commit 6885e67 into mongodb:standardization Jan 17, 2025
    5 checks passed
    @norareidy norareidy deleted the DOCSP-45200-change-streams branch January 17, 2025 18:46
    norareidy added a commit that referenced this pull request Jan 31, 2025
    * add actions
    
    * Update add-netlify-links.yml (#90) (#91)
    
    (cherry picked from commit c2b53c0)
    
    Co-authored-by: Mike Woofter <[email protected]>
    
    * DOCSP-45177 - Create a client (#88)
    
    * DOCSP-45170: Landing page and cleanup (#89)
    
    * DOCSP-45170: Landing page and cleanup
    
    * copy snooty file
    
    * fix toc
    
    * netlify script
    
    * fix
    
    * put old files in folder
    
    * MW feedback
    
    * DOCSP-45171: Download and Install (#92)
    
    * DOCSP-45171: Download and Install
    
    * snooty
    
    * landing page
    
    * MW feedback
    
    * DR feedback
    
    * fix
    
    * DOCSP-45173: Deployment & connection string (#94)
    
    * DOCSP-45173: Deployment & connection string
    
    * edits
    
    * edit image
    
    * SA feedback
    
    * DOCSP-45187: Update
    
    * Fixes
    
    * Fix
    
    * DOCSP-45175: Connect to MongoDB (#95)
    
    * DOCSP-45175: Connect to MongoDB
    
    * fixes
    
    * edits, next steps
    
    * JS feedback
    
    * DR feedback
    
    * Fix
    
    * MW feedback
    
    * DOCSP-45194: Retrieve data (#96)
    
    * DOCSP-45194: Retrieve data
    
    * edits
    
    * build errors
    
    * api links
    
    * JB feedback
    
    * DOCSP-45186: Insert
    
    * Fix
    
    * Fix
    
    * Fix
    
    * DOCSP-45212 Compatibility (#97)
    
    * NR feedback
    
    * MW feedback + adjusting code to be more idiomatic
    
    * DOCSP-45189: Delete
    
    * Fixes
    
    * Fix
    
    * DOCSP-45188: Replace
    
    * JS feedback
    
    * DOCSP-45203 Single Field Indexes (#100)
    
    * add files
    
    * Update add-netlify-links.yml (#90)
    
    * DOCSP-45076: Document that count supports different filters from countDocuments
    
    * Test fix
    
    * Fix
    
    * Try again
    
    * Never mind
    
    * NR suggestion
    
    * DOCSP-45203 Single Field Indexes
    
    * Edits
    
    * edits
    
    * get rid of old commit work
    
    * code spacing
    
    * Stephanie's reiview
    
    * Tech review code improvements
    
    * update api links
    
    * add a space at eof
    
    * update listing description
    
    * add context to ex query code comment
    
    * style edit on prev
    
    ---------
    
    Co-authored-by: Mike Woofter <[email protected]>
    Co-authored-by: Michael Morisi <[email protected]>
    
    * Technical feedback
    
    * DOCSP-45188: Replace
    
    * Fixes
    
    * JS feedback
    
    * DOCSP-45210 What's New (#99)
    
    * DOCSP-45195: Project fields (#105)
    
    * DOCSP-45195: Project fields
    
    * edits
    
    * SA feedback
    
    * DOCSP-45196: Limit, skip, and sort (#109)
    
    * DOCSP-45196: Limit, skip, and sort
    
    * code output
    
    * fixes
    
    * DOCSP-45193: Specify queries (#102)
    
    * DOCSP-45193: Specify queries
    
    * edits
    
    * wording
    
    * LM feedback
    
    * JB feedback
    
    * DOCSP-45197: Count documents (#110)
    
    * DOCSP-45197: Count documents
    
    * edits
    
    * code fix
    
    * JS feedback
    
    * DOCSP-45198: Distinct values (#111)
    
    * DOCSP-45198: Distinct values
    
    * edits
    
    * RR feedback
    
    * DOCSP-45185: Write landing page
    
    * Fixes
    
    * MW feedback
    
    * DOCSP-45204 Compound Index (#106)
    
    * DOCSP-45204 Compound Index
    
    * fix ref
    
    * fix code comment spacing
    
    * specify create one ref
    
    * bold single field
    
    * tech review comment
    
    * remove comments from snippet and spacing fix
    
    * repeated text
    
    * DOCSP-45205 Multikey Indexes (#103)
    
    * DOCSP-45205 Multikey Indexes
    
    * first draft
    
    * edits
    
    * remove quotes from key name
    
    * remove comments from code snippets
    
    * DOCSP-45190: Bulk Write
    
    * Fixes
    
    * link fix
    
    * Fix
    
    * JS feedback
    
    * DOCSP-45182-ruby-databases-collection-2
    
    * added api links
    
    * links
    
    * better link
    
    * style guide and link fixes
    
    * api fixes
    
    * testing bundler
    
    * DOCSP-45191: GridFS
    
    * Fix
    
    * added separate text file, deleted some pages that were added on from a new pr
    
    * DOCSP-45214 Add transactions (#115)
    
    * feedback
    
    * more feedback
    
    * link
    
    * final link
    
    * DOCSP-45191: MW feedback
    
    * small change
    
    * small change
    
    * revert change
    
    * DOCSP-45184-ruby-replica-sets
    
    * fix errors and links
    
    * fixes
    
    * link fix
    
    * syntax
    
    * last fixes
    
    * DOCSP-45183-time-series-collections
    
    * DOCSP-45181: Stable API
    
    * Fix
    
    * half feedback
    
    * LM feedback
    
    * DOCSP-45199: Cursors (#120)
    
    * DOCSP-45199: Cursors
    
    * edits
    
    * fix link
    
    * JS feedback
    
    * tech review
    
    * other half of feedback
    
    * style guide
    
    * added more copy
    
    * added page
    
    * formatting
    
    * trying for output
    
    * again
    
    * formatting
    
    * DOCSP-45191: GridFS follow-up
    
    * Fix
    
    * Jamis technical feedback
    
    * add
    
    * feedback
    
    * ahh
    
    * toctree
    
    * api links
    
    * feedback
    
    * toctree and errors
    
    * file
    
    * errors
    
    * DOCSP-45209: Authentication landing + Authentication mechanisms
    
    * Fixes
    
    * feedback
    
    * fix build
    
    * update toctree
    
    * Reorganize auth mechanisms to separate pages
    
    * Fix
    
    * redoing feedback that got merged out
    
    * toctree
    
    * Fix
    
    * fix typo
    
    * mark troubleshooting todo
    
    * feedback
    
    * DOCSP-45192-read-data-page
    
    * Tweak the Kerberos and IAM pages
    
    * Fix
    
    * wrote page
    
    * fix links
    
    * last link fix
    
    * feedback
    
    * keyword
    
    * keyword 2
    
    * feedback
    
    * fix link
    
    * MW feedback, round 1
    
    * Fix
    
    * Fix
    
    * Kerberos file tweaks, also fixes
    
    * Fix
    
    * DOCSP-45176: Run a command
    
    * Fix
    
    * RM feedback
    
    * DOCSP-45202 Index Overview (#112)
    
    * DOCSP-45202 Index Overview
    
    * edits
    
    * fix ref
    
    * atlas search updates
    
    * small fix
    
    * add api section, edit atlas search examples
    
    * edits
    
    * tech review
    
    * DOCSP-45206 Atlas Search Index (#113)
    
    * DOCSP-45206 Atlas Search Indexes
    
    * first draft
    
    * draft code
    
    * edits
    
    * using native api
    
    * edits
    
    * emphasize lines
    
    * RM typo
    
    * var rename
    
    * code spacing
    
    * DOCSP-45178 Choose a Connection Target (#125)
    
    * DOCSP-45178 Choose a Connection Target
    
    * edits and add page to TOC
    
    * more small edits
    
    * last edits
    
    * no hyper linked period
    
    * coe improvements
    
    * stable api single quote
    
    * feedback
    
    * feedback
    
    * fix toctree issue
    
    * DOCSP-45192-read-data-page
    
    * quotes
    
    * label
    
    * link
    
    * Second round of MW feedback
    
    * Fixes
    
    * Fix
    
    * MW feedback
    
    * feedback
    
    * fix typo
    
    * DOCSP-45200: Change streams (#123)
    
    * DOCSP-45200: Change streams
    
    * edits
    
    * JB feedback
    
    * Jamis feedback
    
    * DOCSP-45179 Configure TLS (#129)
    
    * Configure TLS
    
    * insecure tls
    
    * edits
    
    * monospace
    
    * 1/2 MW edits
    
    * last of MW revisions and table
    
    * table reformat
    
    * spacing edit
    
    * formatting edits
    
    * format
    
    * edit
    
    * MW last comments
    
    * small change
    
    * tech review
    
    * DOCSP-45207 Transform data with aggregation (#131)
    
    * DOCSP-45812 Connection Options (#132)
    
    * DOCSP-45812 Connection Options
    
    * edits
    
    * more edits
    
    * more edits
    
    * format
    
    * format
    
    * RM review
    
    * another link
    
    * add timeout_ms
    
    * remove deprecated options
    
    * DOCSP-45211 Upgrade major versions (#134)
    
    * DOCSP-46860: In-use encryption (#138)
    
    * DOCSP-45201 Cluster monitoring (#133)
    
    * DOCSP-45201 Cluster monitoring
    
    * first draft
    
    * remove eevrything not about cluster monitoring:
    
    * table changes
    
    * review
    
    * final few changes
    
    * NR review comments
    
    * NR comments
    
    * look through
    
    * tech review comments
    
    * DOCSP-45180 Server selection (#135)
    
    * DOCSP-45188 Server selection
    
    * quick add
    
    * remove page
    
    * spacing
    
    * review comment
    
    * same edit
    
    * tech review
    
    * DOCSP-46862 Issues & Help (#139)
    
    * DOCSP-46862 Issues & Help
    
    * edits
    
    * internal review
    
    * weird build fail
    
    * build mysteriously good again
    
    * DOCSP-42104 CSOT (#136)
    
    * first draft
    
    * revisions
    
    * edit
    
    * edits
    
    * code edits
    
    * Rea comments
    
    * edits
    
    * last internal comments
    
    * tech review + add atlas search api refs
    
    * edit to api refs
    
    * code comment edit
    
    * fix code example option name
    
    * DOCSP-46650: Cleanup (#137)
    
    * DOCSP-46650: Cleanup
    
    * redirects
    
    * more cleanup
    
    * rename, test api link
    
    * api links
    
    * fix toc api link
    
    * monitoring, edits
    
    * check api links
    
    * LM feedback
    
    * snooty
    
    * remove old redirects
    
    * LM feedback
    
    ---------
    
    Co-authored-by: Mike Woofter <[email protected]>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Michael Morisi <[email protected]>
    Co-authored-by: Stephanie <[email protected]>
    Co-authored-by: lindseymoore <[email protected]>
    Co-authored-by: Grace Miller <[email protected]>
    Co-authored-by: rustagir <[email protected]>
    Co-authored-by: gmiller-mdb <[email protected]>
    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.

    3 participants