Skip to content

refactor: upgrade mongodb from 4.6.0 to 4.7.0 #8083

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 4 commits into from
Sep 3, 2022

Conversation

snyk-bot
Copy link
Contributor

Snyk has created this PR to upgrade mongodb from 4.6.0 to 4.7.0.

merge advice
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


  • The recommended version is 1 version ahead of your current version.
  • The recommended version was released 22 days ago, on 2022-06-06.
Release notes
Package name: mongodb
  • 4.7.0 - 2022-06-06

    The MongoDB Node.js team is pleased to announce version 4.7.0 of the mongodb package! Happy MongoDB World Day!

    Release Highlights

    Support for ZSTD Compression

    zstd compression is now supported by the NodeJS driver. To enable zstd compression, add it as a dependency in your project: npm install –save @ mongodb-js/zstd. The add the option to your URI options: mongodb://host:port/db?compressors=zstd.

    Improved Connection Storm Avoidance

    The Node driver has improved connection storm avoidance by limiting the number of connections that the driver will attempt to open to each server at a time. The number of concurrent connection attempts is set to 2 by default, but can be configured with a new MongoClient argument, maxConnecting. The following code example creates a new MongoClient that configures maxConnecting to 5.

    const client = new MongoClient('MONGODB_URL', { maxConnecting: 5 });

    Expanded Change Stream Events

    The collection.watch function now supports a new option, showExpandedEvents. When showExpandedEvents is enabled, change streams will report the following events on servers 6.0 and later:

    • createIndexes
    • dropIndexes
    • modify
    • create
    • shardCollection

    On servers 6.1.0 and later, showExpandedEvents will also show change stream events for the following commands:

    • reshardCollection
    • refineCollectionShardKey

    As an example, the following code creates a change stream that has expanded events enabled on a collection:

    const client = new MongoClient('MONGODB_URL');
    await client.connect();

    const collection = client.db('example-db').collection('example-collection');
    const changeStream = collection.watch([], { showExpandedEvents: true });

    Change Stream Support of Pre/Post Images

    Change streams now support pre and post images for update events. To enable pre and post images, the collection must be created with the changeStreamPreAndPostImages option enabled:

    const collection = await db.createCollection(‘collectionName’, { changeStreamPreAndPostImages: { enabled: true }} )

    Pre and post images can then be enabled on the change stream when the change stream is created:

    const changeStream = collection.watch([], { fullDocumentBeforeChange: ‘required’ })

    See the documentation on pre and post images for more information: https://www.mongodb.com/docs/v6.0/changeStreams/#change-streams-with-document-pre--and-post-images.

    Improved Performance in Serverless Environments

    The driver now only processes the most recent server monitoring event if multiple heartbeat events are recorded in sequence before any can be processed. In serverless environments, this results in increased performance when a function is invoked after a period of inactivity as well as lower resource consumption.

    Estimated Document Count uses the Count command

    The 5.0 server compatible release unintentionally broke the estimatedDocumentCount command on views by changing the implementation from the count command to aggregate and a collStats stage. This release fixes estimatedDocumentCount on views by reverting the implementation to use count.

    Due to an oversight, the count command was omitted from the Stable API in server versions 5.0.0 - 5.0.8 and 5.1.0 - 5.3.1, so users of the Stable API with estimatedDocumentCount are recommended to upgrade their MongoDB clusters to 5.0.9 or 5.3.2 (if on Atlas) or set apiStrict: false when constructing their MongoClients.

    MongoClient.connect is now optional

    If an operation is run before MongoClient.connect is called by the client, the driver will now automatically connect along with that first operation. This makes the repl experience much more streamlined, going right from client construction to your first insert or find. However, MongoClient.connect can still be called manually and remains useful for learning about misconfiguration (auth, server not started, connection string correctness) early in your application's startup.

    Note: It's a known limitation that explicit sessions (client.startSession) and initializeOrderedBulkOp, initializeUnorderedBulkOp cannot be used until MongoClient.connect is first called. Look forward to a future patch release that will correct these inconsistencies.

    Support for Clustered Collections

    Clustered Collections can now be created using the createCollection method in the Node driver:

    const client = new MongoClient('MONGODB_URL');
    // No need to connect anymore! (see above)
    const collection = await client.db(‘example-db’).createCollection(‘example-collection’, { 
        key: _id,
        unique: true
    });

    More information about clustered indexes can be found on the official documentation page. https://www.mongodb.com/docs/upcoming/core/clustered-collections/

    Automatic Encryption Shared Library

    To enable the driver to use the new Automatic Encryption Shared Library instead of using mongocryptd, pass the location of the library in the auto-encryption extra options to the MongoClient. Example:

    const client = new MongoClient(uri, {
    autoEncryption: {
    keyVaultNamespace: 'encryption.__keyVault',
    kmsProviders: {
    local: { key: 'localKey' }
    },
    extraOptions: {
    cryptSharedLibPath: "/path/to/mongo_crypt_v1.dylib",
    },
    encryptedFieldsMap: {
    "default.secretCollection": {
    [
    {
    keyId: '_id',
    path: 'ssn',
    bsonType: 'string',
    queries: { queryType: 'equality' }
    }
    ]
    },
    },
    },
    })

    Queryable Encryption Preview

    Queryable Encryption is a beta feature that enables you to encrypt data in your application before you send it over the network to MongoDB while still maintaining the ability to query the encrypted data. With Queryable Encryption enabled, no MongoDB-managed service has access to your data in an unencrypted form.

    Checkout the documentation: https://www.mongodb.com/docs/upcoming/core/queryable-encryption/queryable-encryption/

    ATTENTION: This feature is included in this release as a beta preview. All related APIs marked with @ expiremental in the documentation. There are no guarantees that the APIs will not undergo breaking changes without prior notice.

    Features:

    Bug Fixes

    Documentation

    We invite you to try the mongodb library immediately, and report any issues to the NODE project.

  • 4.6.0 - 2022-05-11
    Read more
from mongodb GitHub release notes
Commit messages
Package name: mongodb

Compare


Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

For more information:

🧐 View latest project report

🛠 Adjust upgrade PR settings

🔕 Ignore this dependency or unsubscribe from future upgrade PRs

@parse-github-assistant
Copy link

I will reformat the title to use the proper commit message syntax.

@parse-github-assistant parse-github-assistant bot changed the title [Snyk] Upgrade mongodb from 4.6.0 to 4.7.0 refactor: upgrade mongodb from 4.6.0 to 4.7.0 Jun 28, 2022
@codecov
Copy link

codecov bot commented Jun 28, 2022

Codecov Report

Merging #8083 (ab91484) into alpha (f821dfd) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##            alpha    #8083      +/-   ##
==========================================
+ Coverage   94.18%   94.20%   +0.02%     
==========================================
  Files         182      182              
  Lines       13720    13720              
==========================================
+ Hits        12922    12925       +3     
+ Misses        798      795       -3     
Impacted Files Coverage Δ
src/RestWrite.js 94.57% <0.00%> (+0.15%) ⬆️
src/Adapters/Files/GridFSBucketAdapter.js 80.32% <0.00%> (+0.81%) ⬆️
src/ParseServerRESTController.js 98.48% <0.00%> (+1.51%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@mtrezza
Copy link
Member

mtrezza commented Jun 28, 2022

Easy test fix that needs to be done here...

@mtrezza mtrezza merged commit 149884f into alpha Sep 3, 2022
@mtrezza mtrezza deleted the snyk-upgrade-deb0bfb181b3c814918fcdc5e18cd6a4 branch September 3, 2022 09:22
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 5.3.0-alpha.22

@parseplatformorg parseplatformorg added the state:released-alpha Released as alpha version label Sep 16, 2022
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 5.4.0-beta.1

@parseplatformorg parseplatformorg added the state:released-beta Released as beta version label Oct 29, 2022
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 5.4.0-alpha.1

@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 5.4.0

@parseplatformorg parseplatformorg added the state:released Released as stable version label Nov 19, 2022
@parseplatformorg
Copy link
Contributor

🎉 This change has been released in version 5.4.0

@parseplatformorg parseplatformorg added the state:released-5.x.x Released as LTS version label Nov 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state:released Released as stable version state:released-5.x.x Released as LTS version state:released-alpha Released as alpha version state:released-beta Released as beta version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants