diff --git a/docs/Next/assets/navigation.js b/docs/Next/assets/navigation.js index a7ebba567ea..cb31bdd9c72 100644 --- a/docs/Next/assets/navigation.js +++ b/docs/Next/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAA62d2XLjOpKG38Vze2qmq84y3XXnsuU6ai/yWHbVRUdHBUTCEsYUqQEhH6sn+t07wBVLIjNJ951C+ef3cwVALOTf/v/MyDdz9vnsiyqFPp39dHYQZnf2+Wxf5cdC1v+5M/viP4bgiyrzs8+/fPzLLz//6Zd//jRmr1d3D3K7eDukCK4Ao6xP+01VIJRBgFEeTweJMLpwinBR5ansLpTKvPzyIJ8TqX0smSsztRfFx09/TgFcQYqSy1pqJQr1j9Qu+Irk1lTZcS9Lk9qWMZwmHDdFaiOGYCp7WZqfPyWS+1gq96Yqt4nULpTKvBVv1zJ1FwzBZLYqkew+mMpebf5XZmaZJ/KdcIpAnXnOeX9Ue1kbsU/dyG48xXh6Wl4m0rsQdu9Gmf9l/23Sx8yfzrJC1PXZ5zNT5x9U/UG+GalLYSXZThW5luXZ578li7cmu0e3Qd/h46c/pz2CLV5oXekUu4/Px6+en2tpKBNHNd8qLMMjl1bwDoNjadReUjvjyuabhXVJZNMK5ht8E8VRIvwm/g681LWqSupgubJ5Zn6F5xnY0DxoUBd61CY2EwtUkz57EMw0COotH94E54GDKs3jNrF5WL+286g2NA8aVoQetg3OBAd1pA9ugvPAcfXpofvwPDhQK3r0IT4P71eYHtmGZpYgTa22eDOyzKVzWFRppH4WmV/79Trf69Ovv83wupFbkZ24jq16pu9QJTH2M9L+uzzJ/U1kzPdvKy7ePvvaeZ62FqDdXNU8n6ZeuFEvMm0ySGY6DLUDvT+xdq7n0PJeHYyqyhrzDLUzPaPnt8ipU8zl24qQcQw93TyvpnKkrTzZPCdbYdJGrmqeT1uD0k6+bqZXU6kyvDzdPK++lqXdQuX7/PAiw1XN81mz799QOc9vaE/QBzKSvqcGX8v/O8oyc46lOR38aruXBDZ/+st/f/z1E7sC8zvoXJMu+H78o9iiDo9i+w6Tk5FPRhU1bNFH5xtciCI7FsLI9uJdQ9ee45iWz9+ExV9ttwJi6gr+PTZfRA1fFqHonXb3Qtfo8YxU7zRMFyChKVGATDC21dR3ZXbV0axepdYql7AvJJxve3fcb6RO3xxOfL7JqryUe1HmoEMfnI8fClX8wMWy+Zb2QS8u7R0zVzDfZlNXpV/4vgqtxGboZ+0FHz76Jj/PLdwDfi/48GkePy54Q4NeMXMPmrswSW+is7jQXXbRpKW8khmz/MH7MnB0NDOPXhXdmIFFL5jJz+KKbrR6PpZZU2i2VoDW9/wNGUegxtQCL0fzXo+10VLsOU6tcpYfvUfv258h217AX47Pz1Kfl/myzOUb7RjnzNwGsyzbv1saerWA6gm+f3eczze10SIzF0ddQ333fjzq33NJ+V6VAMD+jeZtt1puhd2/5EaEEoz3RZhsB/RR2r/RvGPxsjpI3dj4zbuBEUoo3netjHyQ9bEwMM0RYKyLnSi30e3Wg9woSimULM2izPSpabEBpEBB09ayrhFUF0Y5VVHILLE9Qwwn7G05fSVUIfPFq9eXNJJCDYO4NkIbCumKOMxjlkmZk1RPhnPLsj1GFzuZvch8WSbRsHISfXU0XHwvncBfHQ1xGhH5NB/q5GJ6plNR1RyDUcbkailYW+7oeOT7qiouCik0gx5qpziwjksgncBnHp9Qy3e4rUplKq3KLcskkPN9HqTITyyLUcmj88g86uUmZlxusIzF26EQqrSN7VSdH0kw3pUq8xRojFGEtmqvdA1DhjDG+apVfrX+csxeJHBk3SiXYs9BquaHdVxy0/jgoB0hxv69qs15nmtZA0fQCWKMG1WbsdavUycVlFHcpn0uUaYnoXhrKXS2Y1ABIca+rcptdX6/TEyn8cI05/sa5XRhmvOPo07NhgoEJKtpiz/IxZvMjiY9byitpR36tjWK9kQk021mY9hIR5ObtnIK1wSZjGGX2qsM3cxkwlSvCS7z+JzrBM1hOnatDdLF0dHkan8QRm1UocwJRUdCmq1lLkujRAEUuKGCQTsdTHMXX9+uH+zgWZ2ay4nreU5ty+tSGGEHcymfWD3FpXuilflYZzAdU5k8d9JkAmtZvopC5ed620yGINGQnuc0ns47af6o9IsdPaiOtCWaSHu3JdDbThxrQ9yGgJTJX5ZPNV5iBTKSe/llvDbuxF7WB5EBnUdpLcOB5k6gyazaH3TbM4MdiVhIs7V6lWi14yhIGsZhEt4OSst8Te8soCTpXy/uMWQfpjlNW/tidyxfUF4gY3LpFkukI8kTCqNZ5dC11BupqxoDexqSeKvqWpVbp0LE2Ak11+VSHuzoZ5mhFRssJj26shUjuxIuj1HIzynV7yrT9SfgRXqkI8mr5eUFRhziNKnv02ccA1BLOjQTNDDsKCBZ+MqUSELy1lK/Sk23fSMdk0wzp9DWktGAg6Q034hC3mu1t1O+MXioo8mn2ki0BHYUJO1RqGLsFsOogJKmV4eqqLYn+noAlDRdi7IW5PkLZST3qZRvh6bsaE/9g6wPVYnfcmgO6dg+NFdlJjW6K5EOI690LrXMvXHGmAupMKrtGey2IIY5QYpxr+Wz1P6sSxczxlHSsezGuFJdZqECo3mFEtydHUlo3qWsM60Sg6SRZBKv7R3CtzUhp31+l0KbjRT4IFpaO8EBHz5DxFM8iLFSVE77rA6yTA/hxBqamBwN98Iop2mE49dfKMF4QSEN7yog4jDRrQREE5n4nUIkcLzw8w+pUOrp0Hkv9soYCRRskQTjPZUVqzaAdRjZrZJinhvlUhIV4KS6D+tK5vUd+3OVsAUQoDKYqvrrb8AkJXRZRSjiAIcpTRxwKEYNjmYHw45mRyXeymwnSlXv73V1kNoomdgwWEvgq3GCEbrXkBJFf1+DPeIu05MQsNH8Wp7QLYW1BP76dn2vq1eVS31Rlc9qewxvcd8ipUdtmkE59n6k1JjFF3TRQLAIiFx0BE2gGwq1oHRw2bCWiUe2ORBhQHfcz/by3lY5urYR0bNt2lERtosnn2bSjF5PdPJyuHaXspAT9smXs006/dgb769sT5mBadNN9/vEbZ6WTzXx3l1AOESvMqDxw30GNgIJPyh56gZ8F0Vhu+DYpn0C20hXBzveuBH1hKsRSJpkOMlohsG02zjK4Foty1pqw/bx5XyTZmRhSgkYp3DN7Pja2h+BS3gMSi4aq4AAHRf7IJ9VKceiar0TOr+WJ/bBogD8DSnFnn+OfDnf5FCIbIqLp+fb1PYojAdlgmEik2u9nmmcyGPbHgoVTvlOOQ1SLvzpMOn29eWoCTpFycWTE5RQMHrvgtIJ8HDlSJoNLSGB0G1r6VaUp9sqlwWCDpRc9KqUPHIv5ILJY+HKaOj4lOPNLOofsOjTygNM2ZDu1xRrP2WK2RSXGfgH+YcWB3v1vOPAUpB3bRB5PZG5tH3brGHcEr5wApjci0BJo7t6kbHRgZJGd93f9CXgC2lwWy1wSrVAyUUzjoYv5ILJ8+fKaGhTF1BbOopwoJ1ap92Jj/iJS8kZJunnuDGOYqqiEOQWBiIK2O7EsnyukrhRwoNRm8c/bu3w6PAcjYNBLY7vFwDh4EDFQ9rVSjyso2SgGUwW7FgOD6I1zgSUJJokckBNg4N5WcFaGt+tVqHZvpAAdz3vfUWe5IY6DNtVyiCqi6HpG2wfhyiOWBuBXy2+BIUxmugTGueMZjm/Qd4psf10FTQKqf+47flWZ4+uTD5DBhoU18xPThb7YxiHVAfe/QkqMfSizBntqEiFIu0zL9WPG4pQYG3U3i6rHbuwiaIPzUCt2mWiQyWHWEBKBprBZMCuVGGa2SThClOHFmhwXJmvSnle5vQtmdDy8H0jn8X3xTyDrt3M4ntaEk8haYydwM8dO01oUbyzxBZFxzoudlwUzDWIMmZb2XfjPMhXVaeKFHY2dxOcdcrc3Y1TaLNmBQZCbuI05koV8FPPGMYgv8t8i943rgADLfP7ZHXXxYh0f/5sCuSrUGQz5ERUSKGIBNod0XvyeSmhxfG2k8U2x5D2TCiigWijjd9lNCjxvfZFLCC5t6x+p+vbJb+YTYkpg0mTbbAE3GiNP9m4AgwUvN4AOyCwlIL3Y9QkOhSywci1AehQbJWJYtL5QzNwq20CGL6BN0yzq7ersum7fJVa2VlwbW8beoDpPMz2tsrVM1bkuAIcNCxtxzY3ltHQcbIdTY60JP7yy021tVW42CTq0lhGQt3Fc+RGA2LSgITyQPaVQgTKkWAwu1LuQhTFRmQv90KLPQyMZRQUbRK4AhTE6eWc0r15/3IlMlNpuMtoiKIIXb2h9ZQrwEAPdnAbA7kCFOQtwLnSFdoETqr5FvYd9XwLR8234ONZaDutBEc6ChxFj5FNGB1jPGPzn6wfqspwOhsAHYptV5Se5+JgUq2bQIPhnDciUe18WIrDbWuoX7+TPqiADsda4flBJWBdFEWES3fQzUuIMYNH+Wb+5yg1WjaFIhSo9tJO2pY1rz8T0aM28Woe1CUp55h0n6FDyZ0GxY2LVNFtjWQYtJvhRNwTkYpG4gMKE8bFGSPi/LFwuveP3edHDqhzh9JbHT6gEGgw3Lduwinv/kmqMYtonZV9ugLxoHISGjnACS0Xjx0WQMfFrqUxqtzS3F6Igc83lQ4eNtoPHwyBILv94IFHcJeeNZMlo082QBqSm2XSvqfqSskij4lelGTl+WO1lgZoQXS4UEASi+bl40a9SuiDOkGYpJWneMFPxIREDHIwszIo5QY2JGPQg4moAw6adxrnay1OiyIoljqGE2Nx+nMHgvogSXIXAEYkN8ggOav9Fm9Gi6hAGLAJ5TSPm2q7lfpGvgLnNyUkHdz1hX33U0SHRCS5e9Ee0QvWOWBiyql54yb42as+QBKU+UPVsn28iChukCR132A5L5QAv2wzBClS33ERQvr/yXxgSVHEAjRTuHBtECtIJqMIm1N+hRNjg2m5sEVSPtVtXYEDpbCXJ57q9Aj0VsI2j6m+yoRH/3o5+ETHEpLarA1M4JwYg9O86C+uDsYIn2FXQKU5NkqzylxBJdsQYBC6aYSpo+PH+Tw7LZFijhqSu766WVzfrpFrLlKQzKbdeFXE3xUcIzxG95KzW++z6y7KEVDES1UbVQITNVteECZpzkrLFDGWcKipmY8jFJ3yGDEX5U6UmcxXexXVGG6M5DgvDrGzI5qnzwgIiVjkGux0cKh1ur8hJrYTo75JvalqZU4RMIhP5fmfUYWZwEdUIy7cROG1TdzeU+hKCeM0r5nnlLju/CjJKoQxMjqP3d9U9tcLxnh5S0SkpIsspVaZHQ22vyKyHyZpzqQeuHSOFSRzvT6/X16IsipVZl9b0ezXN1Eco4sPkVIuv6u4JWn/o/LCLvHmBeJZhErIptL9KUIwGpgqlOAqHX7yySX2URZrfZCZelYZeHnGCpr5LPUyh55/nBBNMXIrNUwZQiSlPi+jorP5k8r8a6WiY2H/o/Ku5alePZ9D2+2EeJSV2cFHIAhTNOe7HImyMVZwmN5XORAypKP4t/ZR2e7neZk3hUBEjhUkc5x+ARdwkYBFbHqebsQmfkQMwiya7StpXjnaz2sBoZGKwbZzGZL7PQYp0p20b4y/F2YXcZzQBMrqGbrGIwFJrEr36++pLoaEjKYbvIM4EpDE495Wz+C+jyGK4k4pueq+chniIA3JLeVK31Y62rYhQBOKU3sk4BMcxkme+97oCOYGaZJVimIZfX15jHAZT2Uh69p+tMG+/D5NDHUkv+5mAUTAPkAR7nX1rApVbsEOWj86jZUo6kERg2zfeXeCrhA3RnKORXFeFKk++SDMoWEoPqfepTljjOI47xgGz2YYn8IDHgSDMIfmT1SCgL5iGhPqPokVNHO7eDus9NrYLwnGPDdKs/bVq3yqgQkyPS4Q0MT6uJeP1Uv81OmEaIo5auDVNj3IjZKsY3JZWIcLBRxi0+tFcwEZRV9nO7kXt9J+2DxEujGS089Eiua5dKwgzuPBTS83xuOM38KE7gpIw+N23eZxFRaEeTSoPB8jNMPArawhwCCwKq2UjuY3s81PYHHsBUlSpaP71P7HyUt2A3jBSaSrSl/s42sglnCoaRiTEXxbs8sHPqQJ5qrMwP2TbozHoZ9HUzoev50PhW2tqyCZx8Ohsi+Mv6tyibyMouOjarYXOrwIq9jsx5s1fzcg8RQn3o6EQsrhUWzXMrrT23/J3G5SJVyH+FEuCyqh3RjFwa7YKdfq9zD5O5mhzC6uptp/ObnV0cDpTYBD6CrD1JQIQMKhOhNdMTIgmznL6FVoZXuRgplGHz76vJ8DFDUFyMPCYtQCmD8zIocgioCG40fGGMUhTw/r1cOPq5vzr2sQ48QxTHog2GGFInTL0qODIzHUoEDWQM3IRuSozc3i6/nNj8eL+x/r1cX14vHH6v5xuboDj25KS+Nv1nx8pEXwt6u7r6sfFzfLxd3jj8W3xd0jSAZkGDTVhewAfQl6hKk+5IAaKVF4qktphPoKFJbu0xhxoYYEproMfKSvIqDw87QLdBUoLP1gOeJCDQOYeiIMob6OAU6VwWOUgIDPSC7HEaAouNEyktw4APr7vwDYu0K2/qgAAA==" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/Next/assets/search.js b/docs/Next/assets/search.js index 6ab1ce60ae8..b2f68411527 100644 --- a/docs/Next/assets/search.js +++ b/docs/Next/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/Next/classes/AbstractCursor.html b/docs/Next/classes/AbstractCursor.html index cbbb224c3c7..afa0adbdc4d 100644 --- a/docs/Next/classes/AbstractCursor.html +++ b/docs/Next/classes/AbstractCursor.html @@ -1,4 +1,4 @@ -AbstractCursor | mongodb

Class AbstractCursor<TSchema, CursorEvents>Abstract

Type Parameters

Hierarchy (view full)

Implements

  • AsyncDisposable

Properties

signal +AbstractCursor | mongodb

Class AbstractCursor<TSchema, CursorEvents>Abstract

Type Parameters

Hierarchy (view full)

Implements

  • AsyncDisposable

Properties

signal: undefined | AbortSignal
captureRejections: boolean

Value: boolean

+

Properties

signal: undefined | AbortSignal
captureRejections: boolean

Value: boolean

Change the default captureRejections option on all new EventEmitter objects.

v13.4.0, v12.16.0

captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

See how to write a custom rejection handler.

v13.4.0, v12.16.0

-
CLOSE: "close" = ...
defaultMaxListeners: number

By default, a maximum of 10 listeners can be registered for any single +

CLOSE: "close" = ...
defaultMaxListeners: number

By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -90,16 +90,16 @@ regular 'error' listener is installed.

v13.6.0, v12.17.0

Accessors

  • get closed(): boolean
  • The cursor is closed and all remaining locally buffered documents have been iterated.

    -

    Returns boolean

  • get id(): undefined | Long
  • The cursor has no id until it receives a response from the initial cursor creating command.

    It is non-zero for as long as the database has an open cursor.

    The initiating command may receive a zero id if the entire result is in the firstBatch.

    -

    Returns undefined | Long

  • get killed(): boolean
  • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

    -

    Returns boolean

Methods

  • Experimental

    An alias for AbstractCursor.close|AbstractCursor.close().

    -

    Returns Promise<void>

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

Methods

  • An alias for AbstractCursor.close|AbstractCursor.close().

    +

    Returns Promise<void>

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

  • Add a cursor flag to the cursor

    Parameters

    • flag:
          | "tailable"
          | "oplogReplay"
          | "noCursorTimeout"
          | "awaitData"
          | "exhaust"
          | "partial"

      The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

    • value: boolean

      The flag boolean value.

      -

    Returns this

  • Alias for emitter.on(eventName, listener).

    +

Returns this

Returns this

Returns Promise<void>

-

Returns this

Returns this

Properties

pipeline: Document[]
signal: undefined | AbortSignal
captureRejections: boolean

Value: boolean

+

Properties

pipeline: Document[]
signal: undefined | AbortSignal
captureRejections: boolean

Value: boolean

Change the default captureRejections option on all new EventEmitter objects.

v13.4.0, v12.16.0

captureRejectionSymbol: typeof captureRejectionSymbol

Value: Symbol.for('nodejs.rejection')

See how to write a custom rejection handler.

v13.4.0, v12.16.0

-
CLOSE: "close" = ...
defaultMaxListeners: number

By default, a maximum of 10 listeners can be registered for any single +

CLOSE: "close" = ...
defaultMaxListeners: number

By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -109,16 +109,16 @@ regular 'error' listener is installed.

v13.6.0, v12.17.0

Accessors

  • get closed(): boolean
  • The cursor is closed and all remaining locally buffered documents have been iterated.

    -

    Returns boolean

  • get id(): undefined | Long
  • The cursor has no id until it receives a response from the initial cursor creating command.

    +

    Returns boolean

  • get id(): undefined | Long
  • The cursor has no id until it receives a response from the initial cursor creating command.

    It is non-zero for as long as the database has an open cursor.

    The initiating command may receive a zero id if the entire result is in the firstBatch.

    -

    Returns undefined | Long

  • get killed(): boolean
  • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

    -

    Returns boolean

Methods

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

Methods

  • Type Parameters

    • K

    Parameters

    • error: Error
    • event: string | symbol
    • Rest...args: AnyRest

    Returns void

  • Add a cursor flag to the cursor

    Parameters

    • flag:
          | "tailable"
          | "oplogReplay"
          | "noCursorTimeout"
          | "awaitData"
          | "exhaust"
          | "partial"

      The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

    • value: boolean

      The flag boolean value.

      -

    Returns this

  • Alias for emitter.on(eventName, listener).

    +

Returns this

  • Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance

    +

Returns this

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    Parameters

    • Optionaloptions: {
          timeoutMS?: number;
      }
      • OptionaltimeoutMS?: number

    Returns Promise<void>

  • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

    Returns true if the event had listeners, false otherwise.

    import { EventEmitter } from 'node:events';
    const myEmitter = new EventEmitter();

    // First listener
    myEmitter.on('event', function firstListener() {
    console.log('Helloooo! first listener');
    });
    // Second listener
    myEmitter.on('event', function secondListener(arg1, arg2) {
    console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
    });
    // Third listener
    myEmitter.on('event', function thirdListener(...args) {
    const parameters = args.join(', ');
    console.log(`event with parameters ${parameters} in third listener`);
    });

    console.log(myEmitter.listeners('event'));

    myEmitter.emit('event', 1, 2, 3, 4, 5);

    // Prints:
    // [
    // [Function: firstListener],
    // [Function: secondListener],
    // [Function: thirdListener]
    // ]
    // Helloooo! first listener
    // event with parameters 1, 2 in second listener
    // event with parameters 1, 2, 3, 4, 5 in third listener @@ -159,12 +159,12 @@

Returns Promise<void>

  • Will be removed in a future release. Use for await...of instead.
-
  • Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)

    Parameters

    • value: number

      Number of milliseconds to wait before aborting the query.

      -

    Returns this

  • Alias for emitter.removeListener().

    +

Returns this

  • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

    -

    Returns void

  • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

    @@ -462,16 +462,16 @@
  • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

    -

    Returns Promise<TSchema[]>

  • Listens once to the abort event on the provided signal.

    +

Returns this

  • Listens once to the abort event on the provided signal.

    Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/BSON.Long.html b/docs/Next/classes/BSON.Long.html index f9e881a9241..652712eccd1 100644 --- a/docs/Next/classes/BSON.Long.html +++ b/docs/Next/classes/BSON.Long.html @@ -125,29 +125,29 @@

ZERO: Long

Signed zero

Accessors

  • get __isLong__(): boolean
  • An indicator used to reliably determine if an object is a Long or not.

    Returns boolean

  • get _bsontype(): "Long"
  • Returns "Long"

  • get [bsonType](): this["_bsontype"]
  • Returns this["_bsontype"]

Methods

  • Returns the sum of this and the specified Long.

    -

    Parameters

    • addend:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns the sum of this and the specified Long.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

    Sum

    +

    Parameters

    • addend:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • Returns the sum of this and the specified Long.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

    Sum

  • This is an alias of Long.compare

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns -1 | 0 | 1

  • Compares this Long's value with the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns -1 | 0 | 1

    0 if they are the same, 1 if the this is greater and -1 if the given one is greater

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns -1 | 0 | 1

  • Compares this Long's value with the specified's.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns -1 | 0 | 1

    0 if they are the same, 1 if the this is greater and -1 if the given one is greater

  • This is an alias of Long.divide

    -

    Parameters

    • divisor:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns this Long divided by the specified. The result is signed if this Long is signed or unsigned if this Long is unsigned.

    -

    Parameters

    • divisor:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

    Quotient

    +

    Parameters

    • divisor:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • Returns this Long divided by the specified. The result is signed if this Long is signed or unsigned if this Long is unsigned.

    +

    Parameters

    • divisor:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

    Quotient

  • This is an alias of Long.equals

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Tests if this Long's value equals the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

      Other value

      +

      Parameters

      • other:
            | string
            | number
            | Long
            | Timestamp

      Returns boolean

  • Tests if this Long's value equals the specified's.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

      Other value

    Returns boolean

  • This is an alias of Long.isZero

    Returns boolean

  • This is an alias of Long.greaterThanOrEqual

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Gets the high 32 bits as a signed integer.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Gets the high 32 bits as a signed integer.

    Returns number

  • Gets the high 32 bits as an unsigned integer.

    Returns number

  • Gets the low 32 bits as a signed integer.

    Returns number

  • Gets the low 32 bits as an unsigned integer.

    Returns number

  • Gets the number of bits needed to represent the absolute value of this Long.

    Returns number

  • Tests if this Long's value is greater than the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Tests if this Long's value is greater than or equal the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long.greaterThan

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long.greaterThanOrEqual

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Prints a human-readable string of BSON value information +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Tests if this Long's value is greater than or equal the specified's.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long.greaterThan

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long.greaterThanOrEqual

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Prints a human-readable string of BSON value information If invoked manually without node.js.inspect function, this will default to a modified JSON.stringify

    Parameters

    • Optionaldepth: number
    • Optionaloptions: unknown
    • Optionalinspect: InspectFn

    Returns string

  • Tests if this Long's value is even.

    Returns boolean

  • Tests if this Long's value is negative.

    @@ -155,25 +155,25 @@

    Returns boolean

  • Tests if this Long's value is positive.

    Returns boolean

  • Tests if this Long's value equals zero.

    Returns boolean

  • This is an alias of Long.lessThanOrEqual

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Tests if this Long's value is less than the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Tests if this Long's value is less than or equal the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long#lessThan.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long.lessThanOrEqual

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long.modulo

    -

    Parameters

    • divisor:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns this Long modulo the specified.

    -

    Parameters

    • divisor:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • This is an alias of Long.multiply

    -

    Parameters

    • multiplier:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns the product of this and the specified Long.

    -

    Parameters

    • multiplier:
          | string
          | number
          | Timestamp
          | Long

      Multiplier

      +

      Parameters

      • other:
            | string
            | number
            | Long
            | Timestamp

      Returns boolean

  • Tests if this Long's value is less than the specified's.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Tests if this Long's value is less than or equal the specified's.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long#lessThan.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long.lessThanOrEqual

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long.modulo

    +

    Parameters

    • divisor:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • Returns this Long modulo the specified.

    +

    Parameters

    • divisor:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • This is an alias of Long.multiply

    +

    Parameters

    • multiplier:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • Returns the product of this and the specified Long.

    +

    Parameters

    • multiplier:
          | string
          | number
          | Long
          | Timestamp

      Multiplier

    Returns Long

    Product

  • This is an alias of Long.notEquals

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • This is an alias of Long.negate

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • This is an alias of Long.negate

    Returns Long

  • Returns the Negation of this Long's value.

    Returns Long

  • This is an alias of Long.notEquals

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Returns the bitwise NOT of this Long.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Returns the bitwise NOT of this Long.

    Returns Long

  • Tests if this Long's value differs from the specified's.

    -

    Parameters

    • other:
          | string
          | number
          | Timestamp
          | Long

    Returns boolean

  • Returns the bitwise OR of this Long and the specified.

    +

    Parameters

    • other:
          | string
          | number
          | Long
          | Timestamp

    Returns boolean

  • Returns the bitwise OR of this Long and the specified.

    Parameters

    • other: string | number | Long

    Returns Long

  • This is an alias of Long.modulo

    -

    Parameters

    • divisor:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns this Long with bits shifted to the left by the given amount.

    +

    Parameters

    • divisor:
          | string
          | number
          | Long
          | Timestamp

    Returns Long

  • Returns this Long with bits shifted to the left by the given amount.

    Parameters

    • numBits: number | Long

      Number of bits

    Returns Long

    Shifted Long

  • Returns this Long with bits arithmetically shifted to the right by the given amount.

    @@ -187,8 +187,8 @@

    Parameters

    • numBits: number | Long

    Returns Long

  • This is an alias of Long.subtract

    -

    Parameters

    • subtrahend:
          | string
          | number
          | Timestamp
          | Long

    Returns Long

  • Returns the difference of this and the specified Long.

    -

    Parameters

    • subtrahend:
          | string
          | number
          | Timestamp
          | Long

      Subtrahend

      +

      Parameters

      • subtrahend:
            | string
            | number
            | Long
            | Timestamp

      Returns Long

  • Returns the difference of this and the specified Long.

    +

    Parameters

    • subtrahend:
          | string
          | number
          | Long
          | Timestamp

      Subtrahend

    Returns Long

    Difference

  • Converts the Long to a BigInt (arbitrary precision).

    Returns bigint

  • Converts this Long to its byte representation.

    diff --git a/docs/Next/classes/BSON.ObjectId.html b/docs/Next/classes/BSON.ObjectId.html index 23f429e006c..d5e72ccfaac 100644 --- a/docs/Next/classes/BSON.ObjectId.html +++ b/docs/Next/classes/BSON.ObjectId.html @@ -16,33 +16,33 @@ generate isValid

Constructors

  • To generate a new ObjectId, use ObjectId() with no argument.

    -

    Returns ObjectId

  • Create ObjectId from a 24 character hex string.

    +

    Returns ObjectId

  • Create ObjectId from a 24 character hex string.

    Parameters

    • inputId: string

      A 24 character hex string.

      -

    Returns ObjectId

  • Create ObjectId from the BSON ObjectId type.

    +

Returns ObjectId

  • Create ObjectId from the BSON ObjectId type.

    Parameters

    • inputId: ObjectId

      The BSON ObjectId type.

      -

    Returns ObjectId

  • Create ObjectId from the object type that has the toHexString method.

    +
  • Returns ObjectId

  • Create ObjectId from the object type that has the toHexString method.

    Parameters

    Returns ObjectId

  • Create ObjectId from a 12 byte binary Buffer.

    +
  • Returns ObjectId

  • Create ObjectId from a 12 byte binary Buffer.

    Parameters

    • inputId: Uint8Array<ArrayBufferLike>

      A 12 byte binary Buffer.

      -

    Returns ObjectId

  • Implementation overload.

    +
  • Returns ObjectId

  • Implementation overload.

    Parameters

    • OptionalinputId:
          | string
          | Uint8Array<ArrayBufferLike>
          | ObjectId
          | ObjectIdLike

      All input types that are used in the constructor implementation.

      -

    Returns ObjectId

  • Properties

    cacheHexString: boolean

    Accessors

    • get _bsontype(): "ObjectId"
    • Returns "ObjectId"

    • get [bsonType](): this["_bsontype"]
    • Returns this["_bsontype"]

    • get id(): Uint8Array<ArrayBufferLike>
    • The ObjectId bytes

      -

      Returns Uint8Array<ArrayBufferLike>

    Methods

    • Compares the equality of this ObjectId with otherID.

      +

    Returns ObjectId

    Properties

    cacheHexString: boolean

    Accessors

    • get _bsontype(): "ObjectId"
    • Returns "ObjectId"

    • get [bsonType](): this["_bsontype"]
    • Returns this["_bsontype"]

    • get id(): Uint8Array<ArrayBufferLike>
    • The ObjectId bytes

      +

      Returns Uint8Array<ArrayBufferLike>

    Methods

    • Compares the equality of this ObjectId with otherID.

      Parameters

      • otherId:
            | undefined
            | null
            | string
            | ObjectId
            | ObjectIdLike

        ObjectId instance to compare against.

        -

      Returns boolean

    • Returns the generation date (accurate up to the second) that this ID was generated.

      -

      Returns Date

    • Converts to a string representation of this Id.

      +

    Returns boolean

    • Returns the generation date (accurate up to the second) that this ID was generated.

      +

      Returns Date

    • Converts to a string representation of this Id.

      Parameters

      • Optionaldepth: number
      • Optionaloptions: unknown
      • Optionalinspect: InspectFn

      Returns string

      return the 24 character hex string representation.

      -
    • Returns the ObjectId id as a 24 lowercase character hex string representation

      -

      Returns string

    • Converts to its JSON the 24 character hex string representation.

      -

      Returns string

    • Converts the id into a 24 character hex string for printing, unless encoding is provided.

      +
    • Returns the ObjectId id as a 24 lowercase character hex string representation

      +

      Returns string

    • Converts to its JSON the 24 character hex string representation.

      +

      Returns string

    • Converts the id into a 24 character hex string for printing, unless encoding is provided.

      Parameters

      • Optionalencoding: "base64" | "hex"

        hex or base64

        -

      Returns string

    • Creates an ObjectId instance from a base64 string

      -

      Parameters

      • base64: string

      Returns ObjectId

    • Creates an ObjectId from a hex string representation of an ObjectId.

      +

    Returns string

    • Creates an ObjectId instance from a base64 string

      +

      Parameters

      • base64: string

      Returns ObjectId

    • Creates an ObjectId from a hex string representation of an ObjectId.

      Parameters

      • hexString: string

        create a ObjectId from a passed in 24 character hexstring.

        -

      Returns ObjectId

    • Creates an ObjectId from a second based number, with the rest of the ObjectId zeroed out. Used for comparisons or sorting the ObjectId.

      +

    Returns ObjectId

    • Creates an ObjectId from a second based number, with the rest of the ObjectId zeroed out. Used for comparisons or sorting the ObjectId.

      Parameters

      • time: number

        an integer number representing a number of seconds.

        -

      Returns ObjectId

    • Generate a 12 byte id buffer used in ObjectId's

      +

    Returns ObjectId

    • Generate a 12 byte id buffer used in ObjectId's

      Parameters

      • Optionaltime: number

        pass in a second based timestamp.

        -

      Returns Uint8Array<ArrayBufferLike>

    • Checks if a value can be used to create a valid bson ObjectId

      +

    Returns Uint8Array<ArrayBufferLike>

    • Checks if a value can be used to create a valid bson ObjectId

      Parameters

      • id:
            | string
            | Uint8Array<ArrayBufferLike>
            | ObjectId
            | ObjectIdLike

        any JS value

        -

      Returns boolean

    +

    Returns boolean

    diff --git a/docs/Next/classes/BSON.Timestamp.html b/docs/Next/classes/BSON.Timestamp.html index 6c6515229ea..5fc1ee92a35 100644 --- a/docs/Next/classes/BSON.Timestamp.html +++ b/docs/Next/classes/BSON.Timestamp.html @@ -1,69 +1,69 @@ -Timestamp | mongodb

    Class Timestamp

    Hierarchy (view full)

    Constructors

    Properties

    __isLong__ -add -and -comp +Timestamp | mongodb

    Class Timestamp

    Hierarchy (view full)

    Constructors

    • Parameters

      • int: bigint

        A 64-bit bigint representing the Timestamp.

        -

      Returns Timestamp

    • Parameters

      • long: Long

        A 64-bit Long representing the Timestamp.

        -

      Returns Timestamp

    • Parameters

      • value: {
            i: number;
            t: number;
        }

        A pair of two values indicating timestamp and increment.

        -
        • i: number
        • t: number

      Returns Timestamp

    Properties

    __isLong__: boolean
    add: ((addend:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (addend): Long
      • Returns the sum of this and the specified Long.

        -

        Parameters

        • addend:
              | string
              | number
              | Timestamp
              | Long

        Returns Long

    and: ((other:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (other): Long
      • Returns the sum of this and the specified Long.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns Long

        Sum

        -
    comp: ((other:
        | string
        | number
        | Timestamp
        | Long) => -1 | 0 | 1)

    Type declaration

      • (other): -1 | 0 | 1
      • This is an alias of Long.compare

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns -1 | 0 | 1

    compare: ((other:
        | string
        | number
        | Timestamp
        | Long) => -1 | 0 | 1)

    Type declaration

      • (other): -1 | 0 | 1
      • Compares this Long's value with the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns -1 | 0 | 1

        0 if they are the same, 1 if the this is greater and -1 if the given one is greater

        -
    div: ((divisor:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

    divide: ((divisor:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (divisor): Long
      • Returns this Long divided by the specified. The result is signed if this Long is signed or unsigned if this Long is unsigned.

        -

        Parameters

        • divisor:
              | string
              | number
              | Timestamp
              | Long

        Returns Long

        Quotient

        -
    eq: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.equals

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    equals: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value equals the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

          Other value

          -

        Returns boolean

    eqz: (() => boolean)

    Type declaration

      • (): boolean
      • This is an alias of Long.isZero

        -

        Returns boolean

    ge: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

    getHighBits: (() => number)

    Type declaration

      • (): number
      • Gets the high 32 bits as a signed integer.

        -

        Returns number

    getHighBitsUnsigned: (() => number)

    Type declaration

      • (): number
      • Gets the high 32 bits as an unsigned integer.

        -

        Returns number

    getLowBits: (() => number)

    Type declaration

      • (): number
      • Gets the low 32 bits as a signed integer.

        -

        Returns number

    getLowBitsUnsigned: (() => number)

    Type declaration

      • (): number
      • Gets the low 32 bits as an unsigned integer.

        -

        Returns number

    getNumBitsAbs: (() => number)

    Type declaration

      • (): number
      • Gets the number of bits needed to represent the absolute value of this Long.

        -

        Returns number

    greaterThan: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is greater than the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    greaterThanOrEqual: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is greater than or equal the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    gt: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.greaterThan

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    gte: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

    high: number
    isEven: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is even.

        -

        Returns boolean

    isNegative: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is negative.

        -

        Returns boolean

    isOdd: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is odd.

        -

        Returns boolean

    isPositive: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is positive.

        -

        Returns boolean

    isZero: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value equals zero.

        -

        Returns boolean

    le: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

    lessThan: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is less than the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    lessThanOrEqual: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is less than or equal the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    low: number
    lt: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long#lessThan.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    lte: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

    mod: ((divisor:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

    modulo: ((divisor:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (divisor): Long
      • Returns this Long modulo the specified.

        -

        Parameters

        • divisor:
              | string
              | number
              | Timestamp
              | Long

        Returns Long

    mul: ((multiplier:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

    multiply: ((multiplier:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (multiplier): Long
      • Returns the product of this and the specified Long.

        -

        Parameters

        • multiplier:
              | string
              | number
              | Timestamp
              | Long

          Multiplier

          +

        Returns Timestamp

      • Parameters

        • long: Long

          A 64-bit Long representing the Timestamp.

          +

        Returns Timestamp

      • Parameters

        • value: {
              i: number;
              t: number;
          }

          A pair of two values indicating timestamp and increment.

          +
          • i: number
          • t: number

        Returns Timestamp

    Properties

    __isLong__: boolean

    Not applicable to Timestamp. Use the bsonType symbol or _bsontype === 'Timestamp' to identify a Timestamp.

    +
    add: ((addend:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (addend): Long
      • Returns the sum of this and the specified Long.

        +

        Parameters

        • addend:
              | string
              | number
              | Long
              | Timestamp

        Returns Long

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    and: ((other:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (other): Long
      • Returns the sum of this and the specified Long.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns Long

        Sum

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    comp: ((other:
        | string
        | number
        | Long
        | Timestamp) => -1 | 0 | 1)

    Type declaration

      • (other): -1 | 0 | 1
      • This is an alias of Long.compare

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns -1 | 0 | 1

    Use .compare() for general comparison, or .equals(), .lessThan(), .greaterThan() for specific cases.

    +
    compare: ((other:
        | string
        | number
        | Long
        | Timestamp) => -1 | 0 | 1)

    Type declaration

      • (other): -1 | 0 | 1
      • Compares this Long's value with the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns -1 | 0 | 1

        0 if they are the same, 1 if the this is greater and -1 if the given one is greater

        +
    div: ((divisor:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    divide: ((divisor:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (divisor): Long
      • Returns this Long divided by the specified. The result is signed if this Long is signed or unsigned if this Long is unsigned.

        +

        Parameters

        • divisor:
              | string
              | number
              | Long
              | Timestamp

        Returns Long

        Quotient

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    eq: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.equals

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    equals: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value equals the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

          Other value

          +

        Returns boolean

    eqz: (() => boolean)

    Type declaration

      • (): boolean
      • This is an alias of Long.isZero

        +

        Returns boolean

    Compare .t and .i against 0 explicitly.

    +
    ge: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

    getHighBits: (() => number)

    Type declaration

      • (): number
      • Gets the high 32 bits as a signed integer.

        +

        Returns number

    Incompatible with Timestamp: returns a signed integer, but Timestamp is always unsigned. Use .t for seconds since the Unix epoch.

    +
    getHighBitsUnsigned: (() => number)

    Type declaration

      • (): number
      • Gets the high 32 bits as an unsigned integer.

        +

        Returns number

    Not applicable to Timestamp; use .t for seconds since the Unix epoch.

    +
    getLowBits: (() => number)

    Type declaration

      • (): number
      • Gets the low 32 bits as a signed integer.

        +

        Returns number

    Incompatible with Timestamp: returns a signed integer, but Timestamp is always unsigned. Use .i for the increment ordinal.

    +
    getLowBitsUnsigned: (() => number)

    Type declaration

      • (): number
      • Gets the low 32 bits as an unsigned integer.

        +

        Returns number

    Not applicable to Timestamp; use .i for the increment ordinal.

    +
    getNumBitsAbs: (() => number)

    Type declaration

      • (): number
      • Gets the number of bits needed to represent the absolute value of this Long.

        +

        Returns number

    Not applicable to Timestamp.

    +
    greaterThan: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is greater than the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    greaterThanOrEqual: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is greater than or equal the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    gt: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.greaterThan

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    gte: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

    high: number

    Not applicable to Timestamp; use .t instead.

    +
    isEven: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is even.

        +

        Returns boolean

    Not applicable to Timestamp; tests parity of the increment only.

    +
    isNegative: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is negative.

        +

        Returns boolean

    Not applicable to Timestamp as the underlying Long is always unsigned (is always false).

    +
    isOdd: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is odd.

        +

        Returns boolean

    Not applicable to Timestamp; tests parity of the increment only.

    +
    isPositive: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value is positive.

        +

        Returns boolean

    Not applicable to Timestamp as the underlying Long is always unsigned (is always true).

    +
    isZero: (() => boolean)

    Type declaration

      • (): boolean
      • Tests if this Long's value equals zero.

        +

        Returns boolean

    Compare .t and .i against 0 explicitly.

    +
    le: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

    lessThan: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is less than the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    lessThanOrEqual: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value is less than or equal the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    low: number

    Not applicable to Timestamp; use .i instead.

    +
    lt: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long#lessThan.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    lte: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

    mod: ((divisor:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    modulo: ((divisor:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (divisor): Long
      • Returns this Long modulo the specified.

        +

        Parameters

        • divisor:
              | string
              | number
              | Long
              | Timestamp

        Returns Long

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    mul: ((multiplier:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    multiply: ((multiplier:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (multiplier): Long
      • Returns the product of this and the specified Long.

        +

        Parameters

        • multiplier:
              | string
              | number
              | Long
              | Timestamp

          Multiplier

        Returns Long

        Product

        -
    ne: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.notEquals

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    neg: (() => Long)

    Type declaration

    negate: (() => Long)

    Type declaration

      • (): Long
      • Returns the Negation of this Long's value.

        -

        Returns Long

    neq: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.notEquals

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    not: (() => Long)

    Type declaration

      • (): Long
      • Returns the bitwise NOT of this Long.

        -

        Returns Long

    notEquals: ((other:
        | string
        | number
        | Timestamp
        | Long) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value differs from the specified's.

        -

        Parameters

        • other:
              | string
              | number
              | Timestamp
              | Long

        Returns boolean

    or: ((other: string | number | Long) => Long)

    Type declaration

      • (other): Long
      • Returns the bitwise OR of this Long and the specified.

        -

        Parameters

        • other: string | number | Long

        Returns Long

    rem: ((divisor:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

    shiftLeft: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits shifted to the left by the given amount.

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    ne: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.notEquals

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    neg: (() => Long)

    Type declaration

    Not applicable to Timestamp as the underlying Long is always unsigned.

    +
    negate: (() => Long)

    Type declaration

      • (): Long
      • Returns the Negation of this Long's value.

        +

        Returns Long

    Not applicable to Timestamp as the underlying Long is always unsigned.

    +
    neq: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • This is an alias of Long.notEquals

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    not: (() => Long)

    Type declaration

      • (): Long
      • Returns the bitwise NOT of this Long.

        +

        Returns Long

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    notEquals: ((other:
        | string
        | number
        | Long
        | Timestamp) => boolean)

    Type declaration

      • (other): boolean
      • Tests if this Long's value differs from the specified's.

        +

        Parameters

        • other:
              | string
              | number
              | Long
              | Timestamp

        Returns boolean

    or: ((other: string | number | Long) => Long)

    Type declaration

      • (other): Long
      • Returns the bitwise OR of this Long and the specified.

        +

        Parameters

        • other: string | number | Long

        Returns Long

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    rem: ((divisor:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shiftLeft: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits shifted to the left by the given amount.

        Parameters

        • numBits: number | Long

          Number of bits

        Returns Long

        Shifted Long

        -
    shiftRight: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits arithmetically shifted to the right by the given amount.

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shiftRight: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits arithmetically shifted to the right by the given amount.

        Parameters

        • numBits: number | Long

          Number of bits

        Returns Long

        Shifted Long

        -
    shiftRightUnsigned: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits logically shifted to the right by the given amount.

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shiftRightUnsigned: ((numBits: number | Long) => Long)

    Type declaration

      • (numBits): Long
      • Returns this Long with bits logically shifted to the right by the given amount.

        Parameters

        • numBits: number | Long

          Number of bits

        Returns Long

        Shifted Long

        -
    shl: ((numBits: number | Long) => Long)

    Type declaration

    shr: ((numBits: number | Long) => Long)

    Type declaration

    shr_u: ((numBits: number | Long) => Long)

    Type declaration

    shru: ((numBits: number | Long) => Long)

    Type declaration

    sub: ((subtrahend:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

    subtract: ((subtrahend:
        | string
        | number
        | Timestamp
        | Long) => Long)

    Type declaration

      • (subtrahend): Long
      • Returns the difference of this and the specified Long.

        -

        Parameters

        • subtrahend:
              | string
              | number
              | Timestamp
              | Long

          Subtrahend

          +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shl: ((numBits: number | Long) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shr: ((numBits: number | Long) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shr_u: ((numBits: number | Long) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    shru: ((numBits: number | Long) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    sub: ((subtrahend:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    subtract: ((subtrahend:
        | string
        | number
        | Long
        | Timestamp) => Long)

    Type declaration

      • (subtrahend): Long
      • Returns the difference of this and the specified Long.

        +

        Parameters

        • subtrahend:
              | string
              | number
              | Long
              | Timestamp

          Subtrahend

        Returns Long

        Difference

        -
    toBigInt: (() => bigint)

    Type declaration

      • (): bigint
      • Converts the Long to a BigInt (arbitrary precision).

        -

        Returns bigint

    toBytes: ((le?: boolean) => number[])

    Type declaration

      • (le?): number[]
      • Converts this Long to its byte representation.

        +

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    toBigInt: (() => bigint)

    Type declaration

      • (): bigint
      • Converts the Long to a BigInt (arbitrary precision).

        +

        Returns bigint

    toBytes: ((le?: boolean) => number[])

    Type declaration

      • (le?): number[]
      • Converts this Long to its byte representation.

        Parameters

        • Optionalle: boolean

          Whether little or big endian, defaults to big endian

        Returns number[]

        Byte representation

        -
    toBytesBE: (() => number[])

    Type declaration

      • (): number[]
      • Converts this Long to its big endian byte representation.

        +

    Not applicable to Timestamp; use .t for seconds since the Unix epoch, or .i for the increment ordinal.

    +
    toBytesBE: (() => number[])

    Type declaration

      • (): number[]
      • Converts this Long to its big endian byte representation.

        Returns number[]

        Big endian byte representation

        -
    toBytesLE: (() => number[])

    Type declaration

      • (): number[]
      • Converts this Long to its little endian byte representation.

        +

    Not applicable to Timestamp; use .t for seconds since the Unix epoch, or .i for the increment ordinal.

    +
    toBytesLE: (() => number[])

    Type declaration

      • (): number[]
      • Converts this Long to its little endian byte representation.

        Returns number[]

        Little endian byte representation

        -
    toInt: (() => number)

    Type declaration

      • (): number
      • Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.

        -

        Returns number

    toNumber: (() => number)

    Type declaration

      • (): number
      • Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).

        -

        Returns number

    toSigned: (() => Long)

    Type declaration

      • (): Long
      • Converts this Long to signed.

        -

        Returns Long

    toString: ((radix?: number) => string)

    Type declaration

      • (radix?): string
      • Converts the Long to a string written in the specified radix.

        +

    Not applicable to Timestamp; use .t for seconds since the Unix epoch, or .i for the increment ordinal.

    +
    toInt: (() => number)

    Type declaration

      • (): number
      • Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.

        +

        Returns number

    Not applicable to Timestamp; use .t for seconds since the Unix epoch, or .i for the increment ordinal.

    +
    toNumber: (() => number)

    Type declaration

      • (): number
      • Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).

        +

        Returns number

    Not applicable to Timestamp; use .t for seconds since the Unix epoch, or .i for the increment ordinal.

    +
    toSigned: (() => Long)

    Type declaration

      • (): Long
      • Converts this Long to signed.

        +

        Returns Long

    Not applicable to Timestamp as the underlying Long is always unsigned.

    +
    toString: ((radix?: number) => string)

    Type declaration

      • (radix?): string
      • Converts the Long to a string written in the specified radix.

        Parameters

        • Optionalradix: number

          Radix (2-36), defaults to 10

        Returns string

        RangeError If radix is out of range

        -
    toUnsigned: (() => Long)

    Type declaration

      • (): Long
      • Converts this Long to unsigned.

        -

        Returns Long

    unsigned: boolean
    xor: ((other: string | number | Long) => Long)

    Type declaration

      • (other): Long
      • Returns the bitwise XOR of this Long and the given one.

        -

        Parameters

        • other: string | number | Long

        Returns Long

    MAX_VALUE: Long

    Accessors

    • get _bsontype(): "Timestamp"
    • Returns "Timestamp"

    • get [bsonType](): "Timestamp"
    • Returns "Timestamp"

    • get i(): number
    • An incrementing ordinal for operations within a given second.

      -

      Returns number

    • get t(): number
    • A time_t value measuring seconds since the Unix epoch

      -

      Returns number

    Methods

    • Parameters

      • Optionaldepth: number
      • Optionaloptions: unknown
      • Optionalinspect: InspectFn

      Returns string

    • Returns {
          $timestamp: string;
      }

      • $timestamp: string
    • Returns a Timestamp for the given high and low bits. Each is assumed to use 32 bits.

      +
    toUnsigned: (() => Long)

    Type declaration

      • (): Long
      • Converts this Long to unsigned.

        +

        Returns Long

    Not applicable to Timestamp as the underlying Long is always unsigned (this is a no-op).

    +
    unsigned: boolean

    Not applicable to Timestamp as the underlying Long is always unsigned (is always true).

    +
    xor: ((other: string | number | Long) => Long)

    Type declaration

      • (other): Long
      • Returns the bitwise XOR of this Long and the given one.

        +

        Parameters

        • other: string | number | Long

        Returns Long

    Not applicable to Timestamp; Timestamp is not intended to be used as a Long.

    +
    MAX_VALUE: Long

    Use Long.MAX_UNSIGNED_VALUE instead.

    +

    Accessors

    • get _bsontype(): "Timestamp"
    • Returns "Timestamp"

    • get [bsonType](): "Timestamp"
    • Returns "Timestamp"

    • get i(): number
    • An incrementing ordinal for operations within a given second.

      +

      Returns number

    • get t(): number
    • A time_t value measuring seconds since the Unix epoch

      +

      Returns number

    Methods

    • Parameters

      • Optionaldepth: number
      • Optionaloptions: unknown
      • Optionalinspect: InspectFn

      Returns string

    • Returns {
          $timestamp: string;
      }

      • $timestamp: string
    • Returns a Timestamp for the given high and low bits. Each is assumed to use 32 bits.

      Parameters

      • lowBits: number

        the low 32-bits.

      • highBits: number

        the high 32-bits.

        -

      Returns Timestamp

    • Returns a Timestamp represented by the given (32-bit) integer value.

      -

      Parameters

      • value: number

      Returns Timestamp

    • Returns a Timestamp representing the given number value, provided that it is a finite number. Otherwise, zero is returned.

      -

      Parameters

      • value: number

      Returns Timestamp

    • Returns a Timestamp from the given string, optionally using the given radix.

      +

    Returns Timestamp

    • Returns a Timestamp represented by the given (32-bit) integer value.

      +

      Parameters

      • value: number

      Returns Timestamp

      Stores value in the low 32 bits (increment), leaving t = 0. Use new Timestamp({ t, i }) or Timestamp.fromBits(lowBits, highBits) for explicit construction.

      +
    • Returns a Timestamp representing the given number value, provided that it is a finite number. Otherwise, zero is returned.

      +

      Parameters

      • value: number

      Returns Timestamp

      Splits value across (t, i) as a uint64; the result rarely matches user intent. Use new Timestamp({ t, i }) or Timestamp.fromBits(lowBits, highBits) for explicit construction.

      +
    • Returns a Timestamp from the given string, optionally using the given radix.

      Parameters

      • str: string

        the textual representation of the Timestamp.

      • optRadix: number

        the radix in which the text is written.

        -

      Returns Timestamp

    +

    Returns Timestamp

    diff --git a/docs/Next/classes/BSON.UUID.html b/docs/Next/classes/BSON.UUID.html index bb5a30a7931..50c6adccc3c 100644 --- a/docs/Next/classes/BSON.UUID.html +++ b/docs/Next/classes/BSON.UUID.html @@ -1,5 +1,5 @@ UUID | mongodb

    Class UUID

    A class representation of the BSON UUID type.

    -

    Hierarchy (view full)

    Constructors

    Hierarchy (view full)

    Constructors

    Properties

    buffer position sub_type @@ -46,7 +46,7 @@

    Constructors

    • Create a UUID type

      When the argument to the constructor is omitted a random v4 UUID will be generated.

      Parameters

      • Optionalinput: string | Uint8Array<ArrayBufferLike> | UUID

        Can be a 32 or 36 character hex string (dashes excluded/included) or a 16 byte binary Buffer.

        -

      Returns UUID

    Properties

    buffer: Uint8Array<ArrayBufferLike>

    The bytes of the Binary value.

    +

    Returns UUID

    Properties

    buffer: Uint8Array<ArrayBufferLike>

    The bytes of the Binary value.

    The format of a Binary value in BSON is defined as:

    binary	::= int32 subtype (byte*)
     
    @@ -90,18 +90,18 @@
    SUBTYPE_VECTOR: 9 = 9

    Vector BSON type

    VECTOR_TYPE: Readonly<{
        Float32: 39;
        Int8: 3;
        PackedBit: 16;
    }>

    datatype of a Binary Vector (subtype: 9)

    Accessors

    • get _bsontype(): "Binary"
    • Returns "Binary"

    • get [bsonType](): this["_bsontype"]
    • Returns this["_bsontype"]

    • get id(): Uint8Array<ArrayBufferLike>
    • The UUID bytes

      -

      Returns Uint8Array<ArrayBufferLike>

    Methods

    • Compares the equality of this UUID with otherID.

      +

      Returns Uint8Array<ArrayBufferLike>

    Methods

    • Compares the equality of this UUID with otherID.

      Parameters

      • otherId: string | Uint8Array<ArrayBufferLike> | UUID

        UUID instance to compare against.

        -

      Returns boolean

    • Converts to a string representation of this Id.

      +

    Returns boolean

    • Converts to a string representation of this Id.

      Parameters

      • Optionaldepth: number
      • Optionaloptions: unknown
      • Optionalinspect: InspectFn

      Returns string

      return the 36 character hex string representation.

      -
    • the length of the binary sequence

      +
    • the length of the binary sequence

      Returns number

    • Updates this binary with byte_value.

      Parameters

      • byteValue:
            | string
            | number
            | Uint8Array<ArrayBufferLike>
            | number[]

        a single byte we wish to write.

      Returns void

    • Returns a view of length bytes starting at position.

      Parameters

      • position: number

        read from the given position in the Binary.

      • length: number

        the number of bytes to read.

      Returns Uint8Array<ArrayBufferLike>

    • Creates a Binary instance from the current UUID.

      -

      Returns Binary

    • If this Binary represents a Packed bit Vector (binary.buffer[0] === Binary.VECTOR_TYPE.PackedBit), +

      Returns Binary

    • If this Binary represents a Packed bit Vector (binary.buffer[0] === Binary.VECTOR_TYPE.PackedBit), returns a copy of the bit unpacked into a new Int8Array.

      Use toPackedBits to get the bits still in packed form.

      If the Binary is not a Vector, or the datatype is not PackedBit, an error is thrown.

      @@ -110,30 +110,30 @@

      If the Binary is not a Vector, or the datatype is not Float32, an error is thrown.

      Returns Float32Array<ArrayBufferLike>

    • Returns the UUID id as a 32 or 36 character hex string representation, excluding/including dashes (defaults to 36 character dash separated)

      Parameters

      • OptionalincludeDashes: boolean

        should the string exclude dash-separators.

        -

      Returns string

    • If this Binary represents a Int8 Vector (binary.buffer[0] === Binary.VECTOR_TYPE.Int8), +

    Returns string

    • If this Binary represents a Int8 Vector (binary.buffer[0] === Binary.VECTOR_TYPE.Int8), returns a copy of the bytes in a new Int8Array.

      If the Binary is not a Vector, or the datatype is not Int8, an error is thrown.

      Returns Int8Array<ArrayBufferLike>

    • Converts the id into its JSON string representation. A 36 character (dashes included) hex string in the format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

      -

      Returns string

    • If this Binary represents packed bit Vector (binary.buffer[0] === Binary.VECTOR_TYPE.PackedBit), +

      Returns string

    • If this Binary represents packed bit Vector (binary.buffer[0] === Binary.VECTOR_TYPE.PackedBit), returns a copy of the bytes that are packed bits.

      Use toBits to get the unpacked bits.

      If the Binary is not a Vector, or the datatype is not PackedBit, an error is thrown.

      Returns Uint8Array<ArrayBufferLike>

    • Converts the id into a 36 character (dashes included) hex string, unless a encoding is specified.

      -

      Parameters

      • Optionalencoding: "base64" | "hex"

      Returns string

    • returns a view of the binary value as a Uint8Array

      +

      Parameters

      • Optionalencoding: "base64" | "hex"

      Returns string

    • returns a view of the binary value as a Uint8Array

      Returns Uint8Array<ArrayBufferLike>

    • Writes a buffer to the binary.

      Parameters

      • sequence: BinarySequence

        a string or buffer to be written to the Binary BSON object.

      • offset: number

        specify the binary of where to write the content.

      Returns void

    • Creates an UUID from a base64 string representation of an UUID.

      -

      Parameters

      • base64: string

      Returns UUID

    • Creates an UUID from a hex string representation of an UUID.

      +

      Parameters

      • base64: string

      Returns UUID

    • Creates an UUID from a hex string representation of an UUID.

      Parameters

      • hexString: string

        32 or 36 character hex string (dashes excluded/included).

        -

      Returns UUID

    • Constructs a Binary representing an Packed Bit Vector.

      +

    Returns UUID

    • Constructs a Binary representing an Packed Bit Vector.

      Parameters

      • bits: ArrayLike<number>

      Returns Binary

    • Constructs a Binary representing an Float32 Vector.

      Parameters

      • array: Float32Array<ArrayBufferLike>

      Returns Binary

    • Constructs a Binary representing an Int8 Vector.

      Parameters

      • array: Int8Array<ArrayBufferLike>

        The array to store as a view on the Binary class

      Returns Binary

    • Constructs a Binary representing a packed bit Vector.

      Use fromBits to pack an array of 1s and 0s.

      Parameters

      • array: Uint8Array<ArrayBufferLike>
      • Optionalpadding: number

      Returns Binary

    • Generates a populated buffer containing a v4 uuid

      -

      Returns Uint8Array<ArrayBufferLike>

    • Checks if a value is a valid bson UUID

      +

      Returns Uint8Array<ArrayBufferLike>

    • Checks if a value is a valid bson UUID

      Parameters

      • input:
            | string
            | Uint8Array<ArrayBufferLike>
            | Binary
            | UUID

        UUID, string or Buffer to validate.

        -

      Returns boolean

    +

    Returns boolean

    diff --git a/docs/Next/classes/Batch.html b/docs/Next/classes/Batch.html index b839c28b797..88839ebdbdc 100644 --- a/docs/Next/classes/Batch.html +++ b/docs/Next/classes/Batch.html @@ -6,6 +6,7 @@ operations originalIndexes originalZeroIndex +serializedOperations size sizeBytes -

    Constructors

    Properties

    batchType: BatchType
    currentIndex: number
    operations: T[]
    originalIndexes: number[]
    originalZeroIndex: number
    size: number
    sizeBytes: number
    +

    Constructors

    Properties

    batchType: BatchType
    currentIndex: number
    operations: T[]
    originalIndexes: number[]
    originalZeroIndex: number
    serializedOperations: Uint8Array<ArrayBufferLike>[]
    size: number
    sizeBytes: number
    diff --git a/docs/Next/classes/BulkOperationBase.html b/docs/Next/classes/BulkOperationBase.html index a88afd0c3fe..db441be8e2f 100644 --- a/docs/Next/classes/BulkOperationBase.html +++ b/docs/Next/classes/BulkOperationBase.html @@ -1,4 +1,4 @@ -BulkOperationBase | mongodb

    Class BulkOperationBaseAbstract

    Hierarchy (view full)

    Properties

    isOrdered +BulkOperationBase | mongodb

    Class BulkOperationBaseAbstract

    Hierarchy (view full)

    Properties

    Accessors

    batches bsonOptions @@ -9,14 +9,14 @@ find insert raw -

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. +

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. Returns a builder object used to complete the definition of the operation.

      -

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline (requires Mongodb 4.2 or higher)
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute(); +

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute();
      -
    • Add a single insert document to the bulk operation

      Parameters

      Returns BulkOperationBase

      const bulkOp = collection.initializeOrderedBulkOp();

      // Adds three inserts to the bulkOp.
      bulkOp
      .insert({ a: 1 })
      .insert({ b: 2 })
      .insert({ c: 3 });
      await bulkOp.execute();
      -
    +
    diff --git a/docs/Next/classes/BulkWriteResult.html b/docs/Next/classes/BulkWriteResult.html index 764597886c9..634a7de422b 100644 --- a/docs/Next/classes/BulkWriteResult.html +++ b/docs/Next/classes/BulkWriteResult.html @@ -1,5 +1,5 @@ BulkWriteResult | mongodb

    Class BulkWriteResult

    The result of a bulk write.

    -

    Properties

    Properties

    deletedCount: number

    Number of documents deleted.

    -
    insertedCount: number

    Number of documents inserted.

    -
    insertedIds: {
        [key: number]: any;
    }

    Inserted document generated Id's, hash key is the index of the originating operation

    -
    matchedCount: number

    Number of documents matched for update.

    -
    modifiedCount: number

    Number of documents modified.

    -
    upsertedCount: number

    Number of documents upserted.

    -
    upsertedIds: {
        [key: number]: any;
    }

    Upserted document generated Id's, hash key is the index of the originating operation

    -

    Accessors

    • get ok(): number
    • Evaluates to true if the bulk operation correctly executes

      -

      Returns number

    Methods

    • Returns the number of write errors from the bulk operation

      -

      Returns number

    • Returns true if the bulk operation contains a write error

      -

      Returns boolean

    +
    insertedCount: number

    Number of documents inserted.

    +
    insertedIds: {
        [key: number]: any;
    }

    Inserted document generated Id's, hash key is the index of the originating operation

    +
    matchedCount: number

    Number of documents matched for update.

    +
    modifiedCount: number

    Number of documents modified.

    +
    upsertedCount: number

    Number of documents upserted.

    +
    upsertedIds: {
        [key: number]: any;
    }

    Upserted document generated Id's, hash key is the index of the originating operation

    +

    Accessors

    • get ok(): number
    • Evaluates to true if the bulk operation correctly executes

      +

      Returns number

    Methods

    • Returns the number of write errors from the bulk operation

      +

      Returns number

    • Returns true if the bulk operation contains a write error

      +

      Returns boolean

    diff --git a/docs/Next/classes/ChangeStream.html b/docs/Next/classes/ChangeStream.html index e61f17ddf39..5d60669a3f7 100644 --- a/docs/Next/classes/ChangeStream.html +++ b/docs/Next/classes/ChangeStream.html @@ -49,12 +49,12 @@ on once setMaxListeners -

    Properties

    namespace: MongoDBNamespace
    options: ChangeStreamOptions & {
        writeConcern?: undefined;
    }

    WriteConcern can still be present on the options because +

    Properties

    namespace: MongoDBNamespace
    options: ChangeStreamOptions & {
        writeConcern?: undefined;
    }

    WriteConcern can still be present on the options because we inherit options from the client/db/collection. The key must be present on the options in order to delete it. This allows typescript to delete the key but will not allow a writeConcern to be assigned as a property on options.

    -
    pipeline: Document[]
    type: symbol
    captureRejections: boolean

    Value: boolean

    +
    pipeline: Document[]
    type: symbol
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    @@ -63,7 +63,7 @@
    CHANGE: "change" = CHANGE

    Fired for each new matching change in the specified namespace. Attaching a change event listener to a Change Stream will switch the stream into flowing mode. Data will then be passed as soon as it is available.

    -
    CLOSE: "close" = CLOSE
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = CLOSE
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -88,23 +88,23 @@ listeners, respectively. Its name property is set to 'MaxListenersExceededWarning'.

    v0.11.2

    -
    END: "end" = END
    ERROR: "error" = ERROR
    errorMonitor: typeof errorMonitor

    This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

    +
    END: "end" = END
    ERROR: "error" = ERROR
    errorMonitor: typeof errorMonitor

    This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

    Installing a listener using this symbol does not change the behavior once an 'error' event is emitted. Therefore, the process will still crash if no regular 'error' listener is installed.

    v13.6.0, v12.17.0

    -
    INIT: "init" = INIT
    MORE: "more" = MORE
    RESPONSE: "response" = RESPONSE
    RESUME_TOKEN_CHANGED: "resumeTokenChanged" = RESUME_TOKEN_CHANGED

    Emitted each time the change stream stores a new resume token.

    -

    Accessors

    • get resumeToken(): unknown
    • The cached resume token that is used to resume after the most recently returned change.

      -

      Returns unknown

    Methods

    • Experimental

      An alias for ChangeStream.close|ChangeStream.close().

      -

      Returns Promise<void>

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    INIT: "init" = INIT
    MORE: "more" = MORE
    RESPONSE: "response" = RESPONSE
    RESUME_TOKEN_CHANGED: "resumeTokenChanged" = RESUME_TOKEN_CHANGED

    Emitted each time the change stream stores a new resume token.

    +

    Accessors

    • get resumeToken(): unknown
    • The cached resume token that is used to resume after the most recently returned change.

      +

      Returns unknown

    Methods

    • An alias for ChangeStream.close|ChangeStream.close().

      +

      Returns Promise<void>

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Returns the currently buffered documents length of the underlying cursor.

      -

      Returns number

    • Frees the internal resources used by the change stream.

      -

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      Returns number

    • Frees the internal resources used by the change stream.

      +

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -121,7 +121,7 @@ set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.

      Returns number

      v1.0.0

    • Check if there is any document still available in the Change Stream

      -

      Returns Promise<boolean>

    • Returns the number of listeners listening for the event named eventName. +

      Returns Promise<boolean>

    • Try to get the next available document from the Change Stream's cursor or null if an empty batch is returned

      -

      Returns Promise<null | TChange>

    • Listens once to the abort event on the provided signal.

      +
    • Try to get the next available document from the Change Stream's cursor or null if an empty batch is returned

      +

      Returns Promise<null | TChange>

    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/ClientEncryption.html b/docs/Next/classes/ClientEncryption.html index bb508a493b6..4404390d917 100644 --- a/docs/Next/classes/ClientEncryption.html +++ b/docs/Next/classes/ClientEncryption.html @@ -1,5 +1,5 @@ ClientEncryption | mongodb

      Class ClientEncryption

      The public interface for explicit in-use encryption

      -

      Constructors

      Constructors

      Accessors

      Methods

      addKeyAltName createDataKey @@ -20,7 +20,7 @@
      new ClientEncryption(mongoClient, {
      keyVaultNamespace: 'client.encryption',
      kmsProviders: {
      aws: {
      accessKeyId: AWS_ACCESS_KEY,
      secretAccessKey: AWS_SECRET_KEY
      }
      }
      });
      -

    Accessors

    Methods

    Accessors

    Methods

    • Adds a keyAltName to a key identified by the provided _id.

      This method resolves to/returns the old key value (prior to adding the new altKeyName).

      Parameters

      • _id: Binary

        The id of the document to update.

      • keyAltName: string

        a keyAltName to search for a key

        @@ -29,7 +29,7 @@
    • Creates a data key used for explicit encryption and inserts it into the key vault namespace

      Parameters

      Returns Promise<UUID>

      // Using async/await to create a local key
      const dataKeyId = await clientEncryption.createDataKey('local');
      @@ -39,7 +39,7 @@
      // Using async/await to create an aws key with a keyAltName
      const dataKeyId = await clientEncryption.createDataKey('aws', {
      masterKey: {
      region: 'us-east-1',
      key: 'xxxxxxxxxxxxxx' // CMK ARN here
      },
      keyAltNames: [ 'mySpecialKey' ]
      });
      -
    • Explicitly decrypt a provided encrypted value

      Type Parameters

      • T = any

      Parameters

      • value: Binary

        An encrypted value

      Returns Promise<T>

      a Promise that either resolves with the decrypted value, or rejects with an error

      // Decrypting value with async/await API
      async function decryptMyValue(value) {
      return clientEncryption.decrypt(value);
      }
      -
    • Deletes the key with the provided id from the keyvault, if it exists.

      Parameters

      Returns Promise<DeleteResult>

      // delete a key by _id
      const id = new Binary(); // id is a bson binary subtype 4 object
      const { deletedCount } = await clientEncryption.deleteKey(id);

      if (deletedCount != null && deletedCount > 0) {
      // successful deletion
      }
      -
    • Explicitly encrypt a provided value. Note that either options.keyId or options.keyAltName must be specified. Specifying both options.keyId and options.keyAltName is considered an error.

      Parameters

      Returns Promise<Binary>

      a Promise that either resolves with the encrypted value, or rejects with an error.

      @@ -68,7 +68,7 @@
      // Encryption using a keyAltName
      async function encryptMyData(value) {
      await clientEncryption.createDataKey('local', { keyAltNames: 'mySpecialKey' });
      return clientEncryption.encrypt(value, { keyAltName: 'mySpecialKey', algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic' });
      }
      -
    • Finds a key in the keyvault with the specified _id.

      Returns a promise that either resolves to a DataKey if a document matches the key or null if no documents match the id. The promise rejects with an error if an error is thrown.

      Parameters

      Returns Promise<null | DataKey>

      // getting a key by id
      const id = new Binary(); // id is a bson binary subtype 4 object
      const key = await clientEncryption.getKey(id);
      if (!key) {
      // key is null if there was no matching key
      }
      -
    • Finds a key in the keyvault which has the specified keyAltName.

      Parameters

      • keyAltName: string

        a keyAltName to search for a key

      Returns Promise<null | WithId<DataKey>>

      Returns a promise that either resolves to a DataKey if a document matches the key or null if no documents match the keyAltName. The promise rejects with an error if an error is thrown.

      // get a key by alt name
      const keyAltName = 'keyAltName';
      const key = await clientEncryption.getKeyByAltName(keyAltName);
      if (!key) {
      // key is null if there is no matching key
      }
      -
    • Adds a keyAltName to a key identified by the provided _id.

      This method resolves to/returns the old key value (prior to removing the new altKeyName).

      If the removed keyAltName is the last keyAltName for that key, the altKeyNames property is unset from the document.

      Parameters

      • _id: Binary

        The id of the document to update.

        @@ -108,7 +108,7 @@
    • Searches the keyvault for any data keys matching the provided filter. If there are matches, rewrapManyDataKey then attempts to re-wrap the data keys using the provided options.

      +
    • Searches the keyvault for any data keys matching the provided filter. If there are matches, rewrapManyDataKey then attempts to re-wrap the data keys using the provided options.

      If no matches are found, then no bulk write is performed.

      Returns Promise<{
          bulkWriteResult?: BulkWriteResult;
      }>

      // rewrapping all data data keys (using a filter that matches all documents)
      const filter = {};

      const result = await clientEncryption.rewrapManyDataKey(filter);
      if (result.bulkWriteResult != null) {
      // keys were re-wrapped, results will be available in the bulkWrite object.
      }
      @@ -116,4 +116,4 @@
      // attempting to rewrap all data keys with no matches
      const filter = { _id: new Binary() } // assume _id matches no documents in the database
      const result = await clientEncryption.rewrapManyDataKey(filter);

      if (result.bulkWriteResult == null) {
      // no keys matched, `bulkWriteResult` does not exist on the result object
      }
      -
    +
    diff --git a/docs/Next/classes/ClientSession.html b/docs/Next/classes/ClientSession.html index 126f5136394..2c1e9ff1f84 100644 --- a/docs/Next/classes/ClientSession.html +++ b/docs/Next/classes/ClientSession.html @@ -89,10 +89,10 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Aborts the currently active transaction in this session.

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }

        Optional options, can be used to override defaultTimeoutMS.

        -
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Alias for emitter.on(eventName, listener).

      +
      • OptionaltimeoutMS?: number

    Returns Promise<void>

    • Advances the clusterTime for a ClientSession to the provided clusterTime of another ClientSession

      Parameters

      • clusterTime: ClusterTime

        the $clusterTime returned by the server from another session in the form of a document containing the BSON.Timestamp clusterTime and signature

        -

      Returns void

    • Advances the operationTime for a ClientSession.

      +

    Returns void

    • Advances the operationTime for a ClientSession.

      Parameters

      • operationTime: Timestamp

        the BSON.Timestamp of the operation type it is desired to advance to

        -

      Returns void

    • Commits the currently active transaction in this session.

      +

    Returns void

    • Commits the currently active transaction in this session.

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }

        Optional options, can be used to override defaultTimeoutMS.

        -
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      • OptionaltimeoutMS?: number

    Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -117,7 +117,7 @@

      Parameters

      • Optionaloptions: EndSessionOptions

        Optional settings. Currently reserved for future use

      Returns Promise<void>

    • Used to determine if this session equals another

      Parameters

      Returns boolean

    • Returns an array listing the events for which the emitter has registered +

    Returns boolean

    • Returns an array listing the events for which the emitter has registered listeners. The values in the array are strings or Symbols.

      import { EventEmitter } from 'node:events';

      const myEE = new EventEmitter();
      myEE.on('foo', () => {});
      myEE.on('bar', () => {});

      const sym = Symbol('symbol');
      myEE.on(sym, () => {});

      console.log(myEE.eventNames());
      // Prints: [ 'foo', 'bar', Symbol(symbol) ]
      @@ -127,8 +127,8 @@ set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.

      Returns number

      v1.0.0

    • Increment the transaction number on the internal ServerSession

      -

      Returns void

    • Returns boolean

      whether this session is currently in a transaction or not

      -
    • Returns the number of listeners listening for the event named eventName. +

      Returns void

    • Returns boolean

      whether this session is currently in a transaction or not

      +
    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • EventKey extends "ended"

      Parameters

      Returns number

      v3.2.0

      @@ -385,8 +385,8 @@

    Returns void

    IMPORTANT: Running operations in parallel is not supported during a transaction. The use of Promise.all, Promise.allSettled, Promise.race, etc to parallelize operations inside a transaction is undefined behaviour.

    -
    • This is here to ensure that ClientSession is never serialized to BSON.

      -

      Returns never

    • Starts a transaction and runs a provided function, ensuring the commitTransaction is always attempted when all operations run in the function have completed.

      +
    • This is here to ensure that ClientSession is never serialized to BSON.

      +

      Returns never

    • Listens once to the abort event on the provided signal.

      +
    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/CommandFailedEvent.html b/docs/Next/classes/CommandFailedEvent.html index ddd05136357..33f9c7e5c14 100644 --- a/docs/Next/classes/CommandFailedEvent.html +++ b/docs/Next/classes/CommandFailedEvent.html @@ -11,5 +11,5 @@

    Accessors

    Properties

    address: string
    commandName: string
    connectionId?: string | number

    Driver generated connection id

    databaseName: string
    duration: number
    failure: Error
    requestId: number
    serverConnectionId: null | bigint

    Server generated connection id -Distinct from the connection id and is returned by the hello or legacy hello response as "connectionId" from the server on 4.2+.

    +Distinct from the connection id and is returned by the hello or legacy hello response as "connectionId" from the server.

    serviceId?: ObjectId

    Accessors

    diff --git a/docs/Next/classes/CommandStartedEvent.html b/docs/Next/classes/CommandStartedEvent.html index a3349b2c63d..487654e76af 100644 --- a/docs/Next/classes/CommandStartedEvent.html +++ b/docs/Next/classes/CommandStartedEvent.html @@ -12,5 +12,5 @@

    Properties

    address: string
    command: Document
    commandName: string
    commandObj?: Document
    connectionId?: string | number

    Driver generated connection id

    databaseName: string
    requestId: number
    serverConnectionId: null | bigint

    Server generated connection id Distinct from the connection id and is returned by the hello or legacy hello response as "connectionId" -from the server on 4.2+.

    +from the server.

    serviceId?: ObjectId

    Accessors

    diff --git a/docs/Next/classes/CommandSucceededEvent.html b/docs/Next/classes/CommandSucceededEvent.html index 8c2d9e9bdf9..8cdb8962922 100644 --- a/docs/Next/classes/CommandSucceededEvent.html +++ b/docs/Next/classes/CommandSucceededEvent.html @@ -11,5 +11,5 @@

    Accessors

    Properties

    address: string
    commandName: string
    connectionId?: string | number

    Driver generated connection id

    databaseName: string
    duration: number
    reply: unknown
    requestId: number
    serverConnectionId: null | bigint

    Server generated connection id -Distinct from the connection id and is returned by the hello or legacy hello response as "connectionId" from the server on 4.2+.

    +Distinct from the connection id and is returned by the hello or legacy hello response as "connectionId" from the server.

    serviceId?: ObjectId

    Accessors

    diff --git a/docs/Next/classes/ExplainableCursor.html b/docs/Next/classes/ExplainableCursor.html index 11d1cb8c705..e91a8833ab5 100644 --- a/docs/Next/classes/ExplainableCursor.html +++ b/docs/Next/classes/ExplainableCursor.html @@ -57,13 +57,13 @@ on once setMaxListeners -

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -93,16 +93,16 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Add a cursor flag to the cursor

      Parameters

      • flag:
            | "tailable"
            | "oplogReplay"
            | "noCursorTimeout"
            | "awaitData"
            | "exhaust"
            | "partial"

        The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

      • value: boolean

        The flag boolean value.

        -

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

    Returns this

    • Frees any client-side resources used by the cursor.

      -

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    Returns this

    • Frees any client-side resources used by the cursor.

      +

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -133,10 +133,10 @@
        • (doc): boolean | void
        • Parameters

          Returns boolean | void

    Returns Promise<void>

    • Will be removed in a future release. Use for await...of instead.
    -
    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • EventKey extends "close"

      Parameters

      Returns number

      v3.2.0

      @@ -166,10 +166,10 @@
      const cursor: FindCursor<Document> = coll.find();
      const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
      const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]
      -
    • Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)

      Parameters

      • value: number

        Number of milliseconds to wait before aborting the query.

        -

      Returns this

    • Alias for emitter.removeListener().

      +

    Returns this

    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -410,21 +410,21 @@
    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • n: number

      Returns this

      v0.3.5

      -
    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<TSchema[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/FindCursor.html b/docs/Next/classes/FindCursor.html index 1db126b97e1..e38046027bc 100644 --- a/docs/Next/classes/FindCursor.html +++ b/docs/Next/classes/FindCursor.html @@ -72,13 +72,13 @@ on once setMaxListeners -

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -108,16 +108,16 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Add a cursor flag to the cursor

      Parameters

      • flag:
            | "tailable"
            | "oplogReplay"
            | "noCursorTimeout"
            | "awaitData"
            | "exhaust"
            | "partial"

        The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

      • value: boolean

        The flag boolean value.

        -

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

    Returns this

    • Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance

      +

    Returns this

    • Set the collation options for the cursor.

      Parameters

      • value: CollationOptions

        The cursor collation options (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

      Returns this

    • Add a comment to the cursor query allowing for tracking the comment in the log.

      Parameters

      • value: string

        The comment attached to this query.

        @@ -163,10 +163,10 @@
          • (doc): boolean | void
          • Parameters

            Returns boolean | void

      Returns Promise<void>

      • Will be removed in a future release. Use for await...of instead.
      -
    • Set the cursor hint

      Parameters

      • hint: Hint

        If specified, then the query system will only consider plans using the hinted index.

      Returns this

    • Set the cursor min

      Parameters

      • min: Document

        Specify a $min value to specify the inclusive lower bound for a specific index in order to constrain the results of find(). The $min specifies the lower bound for all keys of a specific index in order.

      Returns this

    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -466,7 +466,7 @@

    Returns this

    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      @@ -479,15 +479,15 @@

    Returns this

    • Sets the sort order of the cursor query.

      Parameters

      • sort: Sort

        The key or keys set for the sort.

      • Optionaldirection: SortDirection

        The direction of the sorting (1 or -1).

        -

      Returns this

    • Returns an array of documents. The caller is responsible for making sure that there +

    Returns this

    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<TSchema[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    Properties

    bulkOperation: BulkOperationBase

    Methods

    • Specifies arrayFilters for UpdateOne or UpdateMany bulk operations.

      +

      Parameters

      Returns this

    • Upsert modifier for update bulk operation, noting that this operation is an upsert.

      +

      Returns this

    diff --git a/docs/Next/classes/HostAddress.html b/docs/Next/classes/HostAddress.html index 21c294a3a98..fba0c15676c 100644 --- a/docs/Next/classes/HostAddress.html +++ b/docs/Next/classes/HostAddress.html @@ -1,4 +1,4 @@ -HostAddress | mongodb

    Class HostAddress

    Constructors

    constructor +HostAddress | mongodb

    Class HostAddress

    Constructors

    Properties

    Constructors

    Properties

    host: undefined | string = undefined
    isIPv6: boolean = false
    port: undefined | number = undefined
    socketPath: undefined | string = undefined

    Methods

    • Returns {
          host: string;
          port: number;
      }

      • host: string
      • port: number
    +

    Constructors

    Properties

    host: undefined | string = undefined
    isIPv6: boolean = false
    port: undefined | number = undefined
    socketPath: undefined | string = undefined

    Methods

    • Returns {
          host: string;
          port: number;
      }

      • host: string
      • port: number
    diff --git a/docs/Next/classes/ListCollectionsCursor.html b/docs/Next/classes/ListCollectionsCursor.html index c3b785171c4..1cdfedcf9a1 100644 --- a/docs/Next/classes/ListCollectionsCursor.html +++ b/docs/Next/classes/ListCollectionsCursor.html @@ -58,13 +58,13 @@ on once setMaxListeners -

    Constructors

    Properties

    filter: Document
    parent: Db
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Constructors

    Properties

    filter: Document
    parent: Db
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -94,16 +94,16 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Add a cursor flag to the cursor

      Parameters

      • flag:
            | "tailable"
            | "oplogReplay"
            | "noCursorTimeout"
            | "awaitData"
            | "exhaust"
            | "partial"

        The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

      • value: boolean

        The flag boolean value.

        -

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

    Returns this

    • Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance

      +

    Returns this

    • Frees any client-side resources used by the cursor.

      -

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -133,10 +133,10 @@
        • (doc): boolean | void
        • Parameters

          • doc: T

          Returns boolean | void

    Returns Promise<void>

    • Will be removed in a future release. Use for await...of instead.
    -
    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • EventKey extends "close"

      Parameters

      Returns number

      v3.2.0

      @@ -166,10 +166,10 @@
      const cursor: FindCursor<Document> = coll.find();
      const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
      const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]
      -
    • Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)

      Parameters

      • value: number

        Number of milliseconds to wait before aborting the query.

        -

      Returns this

    • Alias for emitter.removeListener().

      +

    Returns this

    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -410,21 +410,21 @@
    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • n: number

      Returns this

      v0.3.5

      -
    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<T[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/ListIndexesCursor.html b/docs/Next/classes/ListIndexesCursor.html index 23e90dfd7d5..c805ecdbbbe 100644 --- a/docs/Next/classes/ListIndexesCursor.html +++ b/docs/Next/classes/ListIndexesCursor.html @@ -57,13 +57,13 @@ on once setMaxListeners -

    Constructors

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Constructors

    Properties

    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -93,16 +93,16 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Add a cursor flag to the cursor

      Parameters

      • flag:
            | "tailable"
            | "oplogReplay"
            | "noCursorTimeout"
            | "awaitData"
            | "exhaust"
            | "partial"

        The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

      • value: boolean

        The flag boolean value.

        -

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

    Returns this

    • Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance

      +

    Returns this

    • Frees any client-side resources used by the cursor.

      -

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -132,10 +132,10 @@
        • (doc): boolean | void
        • Parameters

          • doc: any

          Returns boolean | void

    Returns Promise<void>

    • Will be removed in a future release. Use for await...of instead.
    -
    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • EventKey extends "close"

      Parameters

      Returns number

      v3.2.0

      @@ -165,10 +165,10 @@
      const cursor: FindCursor<Document> = coll.find();
      const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
      const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]
      -
    • Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)

      Parameters

      • value: number

        Number of milliseconds to wait before aborting the query.

        -

      Returns this

    • Alias for emitter.removeListener().

      +

    Returns this

    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -409,21 +409,21 @@
    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      Returns a reference to the EventEmitter, so that calls can be chained.

      Parameters

      • n: number

      Returns this

      v0.3.5

      -
    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<any[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/ListSearchIndexesCursor.html b/docs/Next/classes/ListSearchIndexesCursor.html index 1ff68207cf4..314c9fe76da 100644 --- a/docs/Next/classes/ListSearchIndexesCursor.html +++ b/docs/Next/classes/ListSearchIndexesCursor.html @@ -69,13 +69,13 @@ on once setMaxListeners -

    Properties

    pipeline: Document[]
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Properties

    pipeline: Document[]
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -105,16 +105,16 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Add a cursor flag to the cursor

      Parameters

      • flag:
            | "tailable"
            | "oplogReplay"
            | "noCursorTimeout"
            | "awaitData"
            | "exhaust"
            | "partial"

        The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial' -.

      • value: boolean

        The flag boolean value.

        -

      Returns this

    • Alias for emitter.on(eventName, listener).

      +

    Returns this

    • Returns a new uninitialized copy of this cursor, with options matching those that have been set on the current instance

      +

    Returns this

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -155,12 +155,12 @@

    Returns Promise<void>

    • Will be removed in a future release. Use for await...of instead.
    -
    • Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher)

      Parameters

      • value: number

        Number of milliseconds to wait before aborting the query.

        -

      Returns this

    • Get the next available document from the cursor, returns null if no more documents are available.

      -

      Returns Promise<null | {
          name: string;
      }>

    • Alias for emitter.removeListener().

      +

    Returns this

    • Get the next available document from the cursor, returns null if no more documents are available.

      +

      Returns Promise<null | {
          name: string;
      }>

    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.

      @@ -458,16 +458,16 @@
    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<{
          name: string;
      }[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoAWSError.html b/docs/Next/classes/MongoAWSError.html index 29f8d780729..8dbcaaf947b 100644 --- a/docs/Next/classes/MongoAWSError.html +++ b/docs/Next/classes/MongoAWSError.html @@ -1,6 +1,6 @@ MongoAWSError | mongodb

      Class MongoAWSError

      A error generated when the user attempts to authenticate via AWS, but fails

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoAWSError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoAzureError.html b/docs/Next/classes/MongoAzureError.html index c1da1076a04..fe9af0d73c4 100644 --- a/docs/Next/classes/MongoAzureError.html +++ b/docs/Next/classes/MongoAzureError.html @@ -1,6 +1,6 @@ MongoAzureError | mongodb

      Class MongoAzureError

      A error generated when the user attempts to authenticate via Azure, but fails.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoAzureError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoBatchReExecutionError.html b/docs/Next/classes/MongoBatchReExecutionError.html index c24f19ccbe2..68128177d85 100644 --- a/docs/Next/classes/MongoBatchReExecutionError.html +++ b/docs/Next/classes/MongoBatchReExecutionError.html @@ -1,6 +1,6 @@ MongoBatchReExecutionError | mongodb

      Class MongoBatchReExecutionError

      An error generated when a batch command is re-executed after one of the commands in the batch has failed

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'This batch has already been executed, create new batch to execute'

      Returns MongoBatchReExecutionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoBulkWriteError.html b/docs/Next/classes/MongoBulkWriteError.html index 5648588c999..ff82ca675ff 100644 --- a/docs/Next/classes/MongoBulkWriteError.html +++ b/docs/Next/classes/MongoBulkWriteError.html @@ -1,5 +1,5 @@ MongoBulkWriteError | mongodb

      Class MongoBulkWriteError

      An error indicating an unsuccessful Bulk Write

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? codeName? @@ -33,9 +33,9 @@

      Meant for internal use only.

      Parameters

      Returns MongoBulkWriteError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    -
    message: string
    ok?: number
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    writeErrors: OneOrMore<WriteError> = []
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    +
    message: string
    ok?: number
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    writeErrors: OneOrMore<WriteError> = []
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -43,17 +43,17 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get insertedIds(): {
          [key: number]: any;
      }
    • Inserted document generated Id's, hash key is the index of the originating operation

      -

      Returns {
          [key: number]: any;
      }

      • [key: number]: any
    • get matchedCount(): number
    • Number of documents matched for update.

      -

      Returns number

    • get upsertedIds(): {
          [key: number]: any;
      }
    • Upserted document generated Id's, hash key is the index of the originating operation

      -

      Returns {
          [key: number]: any;
      }

      • [key: number]: any

    Methods

    • Checks the error to see if it has an error label

      +

      Returns number

    • get errmsg(): string
    • Legacy name for server error responses

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get insertedIds(): {
          [key: number]: any;
      }
    • Inserted document generated Id's, hash key is the index of the originating operation

      +

      Returns {
          [key: number]: any;
      }

      • [key: number]: any
    • get matchedCount(): number
    • Number of documents matched for update.

      +

      Returns number

    • get upsertedIds(): {
          [key: number]: any;
      }
    • Upserted document generated Id's, hash key is the index of the originating operation

      +

      Returns {
          [key: number]: any;
      }

      • [key: number]: any

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoChangeStreamError.html b/docs/Next/classes/MongoChangeStreamError.html index 3c527f6d404..cee57fca2b8 100644 --- a/docs/Next/classes/MongoChangeStreamError.html +++ b/docs/Next/classes/MongoChangeStreamError.html @@ -1,5 +1,5 @@ MongoChangeStreamError | mongodb

      Class MongoChangeStreamError

      An error generated when a ChangeStream operation fails to execute.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoChangeStreamError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoClient.html b/docs/Next/classes/MongoClient.html index 2fb13105b0f..2412a836817 100644 --- a/docs/Next/classes/MongoClient.html +++ b/docs/Next/classes/MongoClient.html @@ -17,7 +17,7 @@
      import { MongoClient } from 'mongodb';
      // Enable command monitoring for debugging
      const client = new MongoClient('mongodb://localhost:27017?appName=mflix', { monitorCommands: true });
      -

    Hierarchy (view full)

    Implements

    • AsyncDisposable

    Constructors

    Hierarchy (view full)

    Implements

    • AsyncDisposable

    Constructors

    Properties

    Constructors

    Properties

    options: Readonly<Omit<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "driverInfo"
        | "monitorCommands">> & Pick<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "driverInfo"
        | "monitorCommands"> & {}

    The consolidate, parsed, transformed and merged options.

    -
    captureRejections: boolean

    Value: boolean

    +

    Constructors

    Properties

    options: Readonly<Omit<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "driverInfo"
        | "monitorCommands">> & Pick<MongoOptions,
        | "ca"
        | "cert"
        | "crl"
        | "key"
        | "driverInfo"
        | "monitorCommands"> & {}

    The consolidate, parsed, transformed and merged options.

    +
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    v13.6.0, v12.17.0

    -

    Accessors

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    Accessors

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Alias for emitter.on(eventName, listener).

      Type Parameters

      • EventKey extends
            | "error"
            | "timeout"
            | "close"
            | "open"
            | "serverOpening"
            | "serverClosed"
            | "serverDescriptionChanged"
            | "topologyOpening"
            | "topologyClosed"
            | "topologyDescriptionChanged"
            | "connectionPoolCreated"
            | "connectionPoolClosed"
            | "connectionPoolCleared"
            | "connectionPoolReady"
            | "connectionCreated"
            | "connectionReady"
            | "connectionClosed"
            | "connectionCheckOutStarted"
            | "connectionCheckOutFailed"
            | "connectionCheckedOut"
            | "connectionCheckedIn"
            | "commandStarted"
            | "commandSucceeded"
            | "commandFailed"
            | "serverHeartbeatStarted"
            | "serverHeartbeatSucceeded"
            | "serverHeartbeatFailed"

      Parameters

      Returns this

      v0.1.26

    • Alias for emitter.on(eventName, listener).

      Parameters

      Returns this

      v0.1.26

      @@ -108,11 +108,11 @@

      Returns this

      v0.1.26

    • Append metadata to the client metadata after instantiation.

      Parameters

      • driverInfo: DriverInfo

        Information about the application or library.

        -

      Returns void

    Returns void

    • Cleans up resources managed by the MongoClient.

      The close method clears and closes all resources whose lifetimes are managed by the MongoClient. Please refer to the MongoClient class documentation for a high level overview of the client's key features and responsibilities.

      However, the close method does not handle the cleanup of resources explicitly created by the user. @@ -172,13 +172,13 @@

      Parameters

      • _force: boolean = false

        currently an unused flag that has no effect. Defaults to false.

        -

      Returns Promise<void>

    • An optional method to verify a handful of assumptions that are generally useful at application boot-time before using a MongoClient. +

    Returns Promise<void>

    • Create a new Db instance sharing the current socket connections.

      +
    • Create a new Db instance sharing the current socket connections.

      Parameters

      • OptionaldbName: string

        The name of the database we want to use. If not provided, use database name from connection string.

      • Optionaloptions: DbOptions

        Optional settings for Db construction

        -

      Returns Db

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

    Returns Db

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -450,7 +450,7 @@

      Returns ClientSession

      A ClientSession instance may only be passed to operations being performed on the same MongoClient it was started from.

      -

    https://www.mongodb.com/docs/manual/reference/connection-string/

    -
    • Returns a copy of the array of listeners for the event named eventName.

      +
    • Returns a copy of the array of listeners for the event named eventName.

      For EventEmitters this behaves exactly the same as calling .listeners on the emitter.

      For EventTargets this is the only way to get the event listeners for the diff --git a/docs/Next/classes/MongoClientBulkWriteCursorError.html b/docs/Next/classes/MongoClientBulkWriteCursorError.html index c5ec56efbd3..927f2eab281 100644 --- a/docs/Next/classes/MongoClientBulkWriteCursorError.html +++ b/docs/Next/classes/MongoClientBulkWriteCursorError.html @@ -1,5 +1,5 @@ MongoClientBulkWriteCursorError | mongodb

      Class MongoClientBulkWriteCursorError

      An error indicating that an error occurred when processing bulk write results.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoClientBulkWriteCursorError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -

    Returns MongoClientBulkWriteError

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    +
    message: string
    ok?: number
    partialResult?: ClientBulkWriteResult

    The results of any successful operations that were performed before the error was encountered.

    -
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    writeConcernErrors: Document[]

    Write concern errors that occurred while executing the bulk write. This list may have +

    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    writeConcernErrors: Document[]

    Write concern errors that occurred while executing the bulk write. This list may have multiple items if more than one server command was required to execute the bulk write.

    -
    writeErrors: Map<number, ClientBulkWriteError>

    Errors that occurred during the execution of individual write operations. This map will +

    writeErrors: Map<number, ClientBulkWriteError>

    Errors that occurred during the execution of individual write operations. This map will contain at most one entry if the bulk write was ordered.

    -
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -40,10 +40,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoClientBulkWriteExecutionError.html b/docs/Next/classes/MongoClientBulkWriteExecutionError.html index 9f816504fce..1a4d1ae1b74 100644 --- a/docs/Next/classes/MongoClientBulkWriteExecutionError.html +++ b/docs/Next/classes/MongoClientBulkWriteExecutionError.html @@ -1,5 +1,5 @@ MongoClientBulkWriteExecutionError | mongodb

      Class MongoClientBulkWriteExecutionError

      An error indicating that an error occurred on the client when executing a client bulk write.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoClientBulkWriteExecutionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoClientClosedError.html b/docs/Next/classes/MongoClientClosedError.html index 1ecdc57eb67..504fb6dcd4f 100644 --- a/docs/Next/classes/MongoClientClosedError.html +++ b/docs/Next/classes/MongoClientClosedError.html @@ -1,6 +1,6 @@ MongoClientClosedError | mongodb

      Class MongoClientClosedError

      An error generated when the MongoClient is closed and async operations are interrupted.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Returns MongoClientClosedError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCompatibilityError.html b/docs/Next/classes/MongoCompatibilityError.html index 86323988258..9d4ebaf305d 100644 --- a/docs/Next/classes/MongoCompatibilityError.html +++ b/docs/Next/classes/MongoCompatibilityError.html @@ -1,6 +1,6 @@ MongoCompatibilityError | mongodb

      Class MongoCompatibilityError

      An error generated when a feature that is not enabled or allowed for the current server configuration is used

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoCompatibilityError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -

    Returns MongoCredentials

    diff --git a/docs/Next/classes/MongoCryptAzureKMSRequestError.html b/docs/Next/classes/MongoCryptAzureKMSRequestError.html index aa7230f60db..d6f5ddeedec 100644 --- a/docs/Next/classes/MongoCryptAzureKMSRequestError.html +++ b/docs/Next/classes/MongoCryptAzureKMSRequestError.html @@ -20,8 +20,8 @@

    Parameters

    Returns MongoCryptAzureKMSRequestError

    This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

    Properties

    body?: Document

    The body of the http response that failed, if present.

    -
    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,10 +29,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCryptCreateDataKeyError.html b/docs/Next/classes/MongoCryptCreateDataKeyError.html index b19ee4bef56..14a569ed451 100644 --- a/docs/Next/classes/MongoCryptCreateDataKeyError.html +++ b/docs/Next/classes/MongoCryptCreateDataKeyError.html @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • encryptedFields: Document
      • __namedParameters: {
            cause: Error;
        }
        • cause: Error

      Returns MongoCryptCreateDataKeyError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    encryptedFields: Document
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    encryptedFields: Document
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCryptCreateEncryptedCollectionError.html b/docs/Next/classes/MongoCryptCreateEncryptedCollectionError.html index 95d706257eb..70e7ee23923 100644 --- a/docs/Next/classes/MongoCryptCreateEncryptedCollectionError.html +++ b/docs/Next/classes/MongoCryptCreateEncryptedCollectionError.html @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • encryptedFields: Document
      • __namedParameters: {
            cause: Error;
        }
        • cause: Error

      Returns MongoCryptCreateEncryptedCollectionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    encryptedFields: Document
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    encryptedFields: Document
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCryptError.html b/docs/Next/classes/MongoCryptError.html index 73e631b81b9..3a760007d3a 100644 --- a/docs/Next/classes/MongoCryptError.html +++ b/docs/Next/classes/MongoCryptError.html @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • options: {
            cause?: Error;
        } = {}
        • Optionalcause?: Error

      Returns MongoCryptError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCryptInvalidArgumentError.html b/docs/Next/classes/MongoCryptInvalidArgumentError.html index 3667c7f59de..faa1a017f4d 100644 --- a/docs/Next/classes/MongoCryptInvalidArgumentError.html +++ b/docs/Next/classes/MongoCryptInvalidArgumentError.html @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoCryptInvalidArgumentError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCryptKMSRequestNetworkTimeoutError.html b/docs/Next/classes/MongoCryptKMSRequestNetworkTimeoutError.html index ecfdac8ae15..edc82debf3a 100644 --- a/docs/Next/classes/MongoCryptKMSRequestNetworkTimeoutError.html +++ b/docs/Next/classes/MongoCryptKMSRequestNetworkTimeoutError.html @@ -17,8 +17,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • options: {
            cause?: Error;
        } = {}
        • Optionalcause?: Error

      Returns MongoCryptKMSRequestNetworkTimeoutError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -26,10 +26,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCursorExhaustedError.html b/docs/Next/classes/MongoCursorExhaustedError.html index 11a3b050a98..8c193e28532 100644 --- a/docs/Next/classes/MongoCursorExhaustedError.html +++ b/docs/Next/classes/MongoCursorExhaustedError.html @@ -1,5 +1,5 @@ MongoCursorExhaustedError | mongodb

      Class MongoCursorExhaustedError

      An error thrown when an attempt is made to read from a cursor that has been exhausted

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • Optionalmessage: string

      Returns MongoCursorExhaustedError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoCursorInUseError.html b/docs/Next/classes/MongoCursorInUseError.html index 5d2c5f2d9d6..a6b99ac03ea 100644 --- a/docs/Next/classes/MongoCursorInUseError.html +++ b/docs/Next/classes/MongoCursorInUseError.html @@ -1,6 +1,6 @@ MongoCursorInUseError | mongodb

      Class MongoCursorInUseError

      An error thrown when the user attempts to add options to a cursor that has already been initialized

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'Cursor is already initialized'

      Returns MongoCursorInUseError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoDecompressionError.html b/docs/Next/classes/MongoDecompressionError.html index f605f623cb5..bee3cd97b5d 100644 --- a/docs/Next/classes/MongoDecompressionError.html +++ b/docs/Next/classes/MongoDecompressionError.html @@ -1,6 +1,6 @@ MongoDecompressionError | mongodb

      Class MongoDecompressionError

      An error generated when the driver fails to decompress data received from the server.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoDecompressionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoError.html b/docs/Next/classes/MongoError.html index 0cff35e6dc1..6bf14dec1f0 100644 --- a/docs/Next/classes/MongoError.html +++ b/docs/Next/classes/MongoError.html @@ -1,4 +1,4 @@ -MongoError | mongodb

      Class MongoError

      Hierarchy (view full)

      Constructors

      constructor +MongoError | mongodb

      Class MongoError

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -17,8 +17,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -26,10 +26,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    Methods

    • Parameters

      • label: string

      Returns void

    • Checks the error to see if it has an error label

      +

      Returns string

    Methods

    • Parameters

      • label: string

      Returns void

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns +

    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoExpiredSessionError.html b/docs/Next/classes/MongoExpiredSessionError.html index 47d997ee377..f1e56c919e1 100644 --- a/docs/Next/classes/MongoExpiredSessionError.html +++ b/docs/Next/classes/MongoExpiredSessionError.html @@ -1,6 +1,6 @@ MongoExpiredSessionError | mongodb

      Class MongoExpiredSessionError

      An error generated when the user attempts to operate on a session that has expired or has been closed.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'Cannot use a session that has ended'

      Returns MongoExpiredSessionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoGCPError.html b/docs/Next/classes/MongoGCPError.html index 15e8af1384c..96b7e24b459 100644 --- a/docs/Next/classes/MongoGCPError.html +++ b/docs/Next/classes/MongoGCPError.html @@ -1,6 +1,6 @@ MongoGCPError | mongodb

      Class MongoGCPError

      A error generated when the user attempts to authenticate via GCP, but fails.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoGCPError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoGridFSChunkError.html b/docs/Next/classes/MongoGridFSChunkError.html index 4be692d364a..28d3d2caf61 100644 --- a/docs/Next/classes/MongoGridFSChunkError.html +++ b/docs/Next/classes/MongoGridFSChunkError.html @@ -1,6 +1,6 @@ MongoGridFSChunkError | mongodb

      Class MongoGridFSChunkError

      An error generated when a malformed or invalid chunk is encountered when reading from a GridFSStream.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoGridFSChunkError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoGridFSStreamError.html b/docs/Next/classes/MongoGridFSStreamError.html index 7310fae59d4..e11ec17f513 100644 --- a/docs/Next/classes/MongoGridFSStreamError.html +++ b/docs/Next/classes/MongoGridFSStreamError.html @@ -1,5 +1,5 @@ MongoGridFSStreamError | mongodb

      Class MongoGridFSStreamError

      An error generated when a GridFSStream operation fails to execute.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoGridFSStreamError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoInvalidArgumentError.html b/docs/Next/classes/MongoInvalidArgumentError.html index abcca3351e0..553f6b8a74e 100644 --- a/docs/Next/classes/MongoInvalidArgumentError.html +++ b/docs/Next/classes/MongoInvalidArgumentError.html @@ -1,6 +1,6 @@ MongoInvalidArgumentError | mongodb

      Class MongoInvalidArgumentError

      An error generated when the user supplies malformed or unexpected arguments or when a required argument or field is not provided.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoInvalidArgumentError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoKerberosError.html b/docs/Next/classes/MongoKerberosError.html index 379648038a9..707732e983f 100644 --- a/docs/Next/classes/MongoKerberosError.html +++ b/docs/Next/classes/MongoKerberosError.html @@ -1,6 +1,6 @@ MongoKerberosError | mongodb

      Class MongoKerberosError

      A error generated when the user attempts to authenticate via Kerberos, but fails to connect to the Kerberos client.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoKerberosError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoMissingCredentialsError.html b/docs/Next/classes/MongoMissingCredentialsError.html index b476cb70af7..2d165ca444f 100644 --- a/docs/Next/classes/MongoMissingCredentialsError.html +++ b/docs/Next/classes/MongoMissingCredentialsError.html @@ -1,6 +1,6 @@ MongoMissingCredentialsError | mongodb

      Class MongoMissingCredentialsError

      An error generated when the user fails to provide authentication credentials before attempting to connect to a mongo server instance.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoMissingCredentialsError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoMissingDependencyError.html b/docs/Next/classes/MongoMissingDependencyError.html index b8c07a9f471..46646f8b731 100644 --- a/docs/Next/classes/MongoMissingDependencyError.html +++ b/docs/Next/classes/MongoMissingDependencyError.html @@ -1,5 +1,5 @@ MongoMissingDependencyError | mongodb

      Class MongoMissingDependencyError

      An error generated when a required module or dependency is not present in the local environment

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause code? connectionGeneration? @@ -19,9 +19,9 @@

      Meant for internal use only.

      Parameters

      • message: string
      • options: {
            cause: Error;
            dependencyName: string;
        }
        • cause: Error
        • dependencyName: string

      Returns MongoMissingDependencyError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause: Error

    This property is assigned in the Error constructor.

    -
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    dependencyName: string
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause: Error

    This property is assigned in the Error constructor.

    +
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    dependencyName: string
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,10 +29,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoNetworkError.html b/docs/Next/classes/MongoNetworkError.html index 5d5c2753a6a..3a879ea361f 100644 --- a/docs/Next/classes/MongoNetworkError.html +++ b/docs/Next/classes/MongoNetworkError.html @@ -1,5 +1,5 @@ MongoNetworkError | mongodb

      Class MongoNetworkError

      An error indicating an issue with the network, including TCP errors and timeouts.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      Returns MongoNetworkError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoNetworkTimeoutError.html b/docs/Next/classes/MongoNetworkTimeoutError.html index 13095def3ae..e9c717f1763 100644 --- a/docs/Next/classes/MongoNetworkTimeoutError.html +++ b/docs/Next/classes/MongoNetworkTimeoutError.html @@ -1,5 +1,5 @@ MongoNetworkTimeoutError | mongodb

      Class MongoNetworkTimeoutError

      An error indicating a network timeout occurred

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      Returns MongoNetworkTimeoutError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoNotConnectedError.html b/docs/Next/classes/MongoNotConnectedError.html index 16cb4ddde27..e0e760c976c 100644 --- a/docs/Next/classes/MongoNotConnectedError.html +++ b/docs/Next/classes/MongoNotConnectedError.html @@ -1,6 +1,6 @@ MongoNotConnectedError | mongodb

      Class MongoNotConnectedError

      An error thrown when the user attempts to operate on a database or collection through a MongoClient that has not yet successfully called the "connect" method

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoNotConnectedError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoOIDCError.html b/docs/Next/classes/MongoOIDCError.html index 5a1d385540b..a795df35b8b 100644 --- a/docs/Next/classes/MongoOIDCError.html +++ b/docs/Next/classes/MongoOIDCError.html @@ -1,6 +1,6 @@ MongoOIDCError | mongodb

      Class MongoOIDCError

      A error generated when the user attempts to authenticate via OIDC callbacks, but fails.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoOIDCError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoOperationTimeoutError.html b/docs/Next/classes/MongoOperationTimeoutError.html index d864400ec36..4cc08911b4f 100644 --- a/docs/Next/classes/MongoOperationTimeoutError.html +++ b/docs/Next/classes/MongoOperationTimeoutError.html @@ -1,7 +1,7 @@ MongoOperationTimeoutError | mongodb

      Class MongoOperationTimeoutError

      try {
      await blogs.insertOne(blogPost, { timeoutMS: 60_000 })
      } catch (error) {
      if (error instanceof MongoOperationTimeoutError) {
      console.log(`Oh no! writer's block!`, error);
      }
      }
      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -20,8 +20,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoOperationTimeoutError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,10 +29,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoParseError.html b/docs/Next/classes/MongoParseError.html index ce2e1592deb..916aa5376af 100644 --- a/docs/Next/classes/MongoParseError.html +++ b/docs/Next/classes/MongoParseError.html @@ -1,5 +1,5 @@ MongoParseError | mongodb

      Class MongoParseError

      An error used when attempting to parse a value (like a connection string)

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoParseError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoServerClosedError.html b/docs/Next/classes/MongoServerClosedError.html index 868d8742316..48daa42a89f 100644 --- a/docs/Next/classes/MongoServerClosedError.html +++ b/docs/Next/classes/MongoServerClosedError.html @@ -1,6 +1,6 @@ MongoServerClosedError | mongodb

      Class MongoServerClosedError

      An error generated when an attempt is made to operate on a closed/closing server.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'Server is closed'

      Returns MongoServerClosedError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    -
    message: string
    ok?: number
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    +
    message: string
    ok?: number
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -33,10 +33,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoServerSelectionError.html b/docs/Next/classes/MongoServerSelectionError.html index 7a7c51de498..beab10e527a 100644 --- a/docs/Next/classes/MongoServerSelectionError.html +++ b/docs/Next/classes/MongoServerSelectionError.html @@ -1,5 +1,5 @@ MongoServerSelectionError | mongodb

      Class MongoServerSelectionError

      An error signifying a client-side server selection error

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,9 +19,9 @@

      Meant for internal use only.

      Parameters

      Returns MongoServerSelectionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    -
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    +
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,10 +29,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoStalePrimaryError.html b/docs/Next/classes/MongoStalePrimaryError.html index 4720426ba13..e5d3826f140 100644 --- a/docs/Next/classes/MongoStalePrimaryError.html +++ b/docs/Next/classes/MongoStalePrimaryError.html @@ -1,5 +1,5 @@ MongoStalePrimaryError | mongodb

      Class MongoStalePrimaryError

      An error generated when a primary server is marked stale, never directly thrown

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string
      • Optionaloptions: {
            cause?: Error;
        }
        • Optionalcause?: Error

      Returns MongoStalePrimaryError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoSystemError.html b/docs/Next/classes/MongoSystemError.html index f47cf41e41d..6e738fe3b9d 100644 --- a/docs/Next/classes/MongoSystemError.html +++ b/docs/Next/classes/MongoSystemError.html @@ -1,5 +1,5 @@ MongoSystemError | mongodb

      Class MongoSystemError

      An error signifying a general system issue

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,9 +19,9 @@

      Meant for internal use only.

      Parameters

      Returns MongoSystemError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    -
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string

    An optional reason context, such as an error saved during flow of monitoring and selecting servers

    +
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -29,10 +29,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoTailableCursorError.html b/docs/Next/classes/MongoTailableCursorError.html index 8d5c0578386..56c52dc1a7b 100644 --- a/docs/Next/classes/MongoTailableCursorError.html +++ b/docs/Next/classes/MongoTailableCursorError.html @@ -1,5 +1,5 @@ MongoTailableCursorError | mongodb

      Class MongoTailableCursorError

      An error thrown when the user calls a function or method not supported on a tailable cursor

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -18,8 +18,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'Tailable cursor does not support this operation'

      Returns MongoTailableCursorError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -27,10 +27,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoTopologyClosedError.html b/docs/Next/classes/MongoTopologyClosedError.html index 237d718e388..01da504ec64 100644 --- a/docs/Next/classes/MongoTopologyClosedError.html +++ b/docs/Next/classes/MongoTopologyClosedError.html @@ -1,6 +1,6 @@ MongoTopologyClosedError | mongodb

      Class MongoTopologyClosedError

      An error generated when an attempt is made to operate on a dropped, or otherwise unavailable, database.

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string = 'Topology is closed'

      Returns MongoTopologyClosedError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoTransactionError.html b/docs/Next/classes/MongoTransactionError.html index 4edf02d1f61..fd6db5928dd 100644 --- a/docs/Next/classes/MongoTransactionError.html +++ b/docs/Next/classes/MongoTransactionError.html @@ -1,6 +1,6 @@ MongoTransactionError | mongodb

      Class MongoTransactionError

      An error generated when the user makes a mistake in the usage of transactions. (e.g. attempting to commit a transaction with a readPreference other than primary)

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? connectionGeneration? @@ -19,8 +19,8 @@

      Meant for internal use only.

      Parameters

      • message: string

      Returns MongoTransactionError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -28,10 +28,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoUnexpectedServerResponseError.html b/docs/Next/classes/MongoUnexpectedServerResponseError.html index 3979b4eb0ba..77f702a6848 100644 --- a/docs/Next/classes/MongoUnexpectedServerResponseError.html +++ b/docs/Next/classes/MongoUnexpectedServerResponseError.html @@ -7,7 +7,7 @@ selection returns a server that does not support retryable operations, this error is used. This scenario is unlikely as retryable support would also have been determined on the first attempt but it is possible the state change could report a selectable server that does not support retries.

      -

    Hierarchy (view full)

    Constructors

    Hierarchy (view full)

    Constructors

    Properties

    cause? code? connectionGeneration? @@ -26,8 +26,8 @@

    Meant for internal use only.

    Parameters

    • message: string
    • Optionaloptions: {
          cause?: Error;
      }
      • Optionalcause?: Error

    Returns MongoUnexpectedServerResponseError

    This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

    -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    connectionGeneration?: number
    message: string
    stack?: string
    topologyVersion?: TopologyVersion
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -35,10 +35,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/MongoWriteConcernError.html b/docs/Next/classes/MongoWriteConcernError.html index a2e687b8cf3..8642413b9c3 100644 --- a/docs/Next/classes/MongoWriteConcernError.html +++ b/docs/Next/classes/MongoWriteConcernError.html @@ -1,5 +1,5 @@ MongoWriteConcernError | mongodb

      Class MongoWriteConcernError

      An error thrown when the server reports a writeConcernError

      -

      Hierarchy (view full)

      Constructors

      Hierarchy (view full)

      Constructors

      Properties

      cause? code? codeName? @@ -24,10 +24,10 @@

      Meant for internal use only.

      Parameters

      Returns MongoWriteConcernError

      This class is only meant to be constructed within the driver. This constructor is not subject to semantic versioning compatibility guarantees and may change at any time.

      -

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    -
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    -
    message: string
    ok?: number
    result: Document

    The result document

    -
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames +

    Properties

    cause?: Error
    code?: string | number

    This is a number in MongoServerError and a string in MongoDriverError

    +
    codeName?: string
    connectionGeneration?: number
    errInfo?: Document
    errorResponse: ErrorDescription

    Raw error result document returned by server.

    +
    message: string
    ok?: number
    result: Document

    The result document

    +
    stack?: string
    topologyVersion?: TopologyVersion
    writeConcernError?: Document
    stackTraceLimit: number

    The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

    The default value is 10 but may be set to any valid JavaScript number. Changes @@ -35,10 +35,10 @@

    If set to a non-number value, or set to a negative number, stack traces will not capture any frames.

    Accessors

    • get errmsg(): string
    • Legacy name for server error responses

      -

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      +

      Returns string

    • get errorLabels(): string[]
    • Returns string[]

    • get name(): string
    • Returns string

    Methods

    • Checks the error to see if it has an error label

      Parameters

      • label: string

        The error label to check for

      Returns boolean

      returns true if the error has the provided error label

      -
    • Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.

      const myObject = {};
      Error.captureStackTrace(myObject);
      myObject.stack; // Similar to `new Error().stack` diff --git a/docs/Next/classes/OrderedBulkOperation.html b/docs/Next/classes/OrderedBulkOperation.html index 919f51c318e..709abbcd0ca 100644 --- a/docs/Next/classes/OrderedBulkOperation.html +++ b/docs/Next/classes/OrderedBulkOperation.html @@ -9,14 +9,14 @@ find insert raw -

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. +

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. Returns a builder object used to complete the definition of the operation.

      -

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline (requires Mongodb 4.2 or higher)
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute(); +

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute();
      -
    +
    diff --git a/docs/Next/classes/RunCommandCursor.html b/docs/Next/classes/RunCommandCursor.html index e2d892257d5..c8e98a6d5f9 100644 --- a/docs/Next/classes/RunCommandCursor.html +++ b/docs/Next/classes/RunCommandCursor.html @@ -59,13 +59,13 @@ on once setMaxListeners -

    Properties

    command: Readonly<Record<string, any>>
    getMoreOptions: {
        batchSize?: number;
        comment?: any;
        maxAwaitTimeMS?: number;
    } = {}
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    +

    Properties

    command: Readonly<Record<string, any>>
    getMoreOptions: {
        batchSize?: number;
        comment?: any;
        maxAwaitTimeMS?: number;
    } = {}
    signal: undefined | AbortSignal
    captureRejections: boolean

    Value: boolean

    Change the default captureRejections option on all new EventEmitter objects.

    v13.4.0, v12.16.0

    captureRejectionSymbol: typeof captureRejectionSymbol

    Value: Symbol.for('nodejs.rejection')

    See how to write a custom rejection handler.

    v13.4.0, v12.16.0

    -
    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single +

    CLOSE: "close" = ...
    defaultMaxListeners: number

    By default, a maximum of 10 listeners can be registered for any single event. This limit can be changed for individual EventEmitter instances using the emitter.setMaxListeners(n) method. To change the default for allEventEmitter instances, the events.defaultMaxListeners property @@ -95,13 +95,13 @@ regular 'error' listener is installed.

    v13.6.0, v12.17.0

    Accessors

    • get closed(): boolean
    • The cursor is closed and all remaining locally buffered documents have been iterated.

      -

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      +

      Returns boolean

    • get id(): undefined | Long
    • The cursor has no id until it receives a response from the initial cursor creating command.

      It is non-zero for as long as the database has an open cursor.

      The initiating command may receive a zero id if the entire result is in the firstBatch.

      -

      Returns undefined | Long

    • get killed(): boolean
    • A killCursors command was attempted on this cursor. This is performed if the cursor id is non zero.

      -

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Unsupported for RunCommandCursor: various cursor flags must be configured directly on command document

      +

      Returns boolean

    Methods

    • Type Parameters

      • K

      Parameters

      • error: Error
      • event: string | symbol
      • Rest...args: AnyRest

      Returns void

    • Frees any client-side resources used by the cursor.

      -

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments +

      Parameters

      • Optionaloptions: {
            timeoutMS?: number;
        }
        • OptionaltimeoutMS?: number

      Returns Promise<void>

    • Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.

      Returns true if the event had listeners, false otherwise.

      import { EventEmitter } from 'node:events';
      const myEmitter = new EventEmitter();

      // First listener
      myEmitter.on('event', function firstListener() {
      console.log('Helloooo! first listener');
      });
      // Second listener
      myEmitter.on('event', function secondListener(arg1, arg2) {
      console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
      });
      // Third listener
      myEmitter.on('event', function thirdListener(...args) {
      const parameters = args.join(', ');
      console.log(`event with parameters ${parameters} in third listener`);
      });

      console.log(myEmitter.listeners('event'));

      myEmitter.emit('event', 1, 2, 3, 4, 5);

      // Prints:
      // [
      // [Function: firstListener],
      // [Function: secondListener],
      // [Function: thirdListener]
      // ]
      // Helloooo! first listener
      // event with parameters 1, 2 in second listener
      // event with parameters 1, 2, 3, 4, 5 in third listener @@ -131,10 +131,10 @@
        • (doc): boolean | void
        • Parameters

          • doc: any

          Returns boolean | void

    Returns Promise<void>

    • Will be removed in a future release. Use for await...of instead.
    -
    • Returns the number of listeners listening for the event named eventName. If listener is provided, it will return how many times the listener is found in the list of the listeners of the event.

      Type Parameters

      • EventKey extends "close"

      Parameters

      Returns number

      v3.2.0

      @@ -164,9 +164,9 @@
      const cursor: FindCursor<Document> = coll.find();
      const mappedCursor: FindCursor<number> = cursor.map(doc => Object.keys(doc).length);
      const keyCounts: number[] = await mappedCursor.toArray(); // cursor.toArray() still returns Document[]
      -
    • Removes all listeners, or those of the specified eventName.

      It is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).

      @@ -407,7 +407,7 @@
    • Rewind this cursor to its uninitialized state. Any options that are present on the cursor will remain in effect. Iterating this cursor will cause new queries to be sent to the server, even if the resultant data has already been retrieved by this cursor.

      -

      Returns void

    • Controls the getMore.batchSize field

      Parameters

      • batchSize: number

        the number documents to return in the nextBatch

      Returns this

    • Controls the getMore.maxTimeMS field. Only valid when cursor is tailable await

      Parameters

      • maxTimeMS: number

        the number of milliseconds to wait for new data

        -

      Returns this

    • Returns an array of documents. The caller is responsible for making sure that there +

    Returns this

    • Returns an array of documents. The caller is responsible for making sure that there is enough memory to store the results. Note that the array only contains partial results when this cursor had been previously accessed. In that case, cursor.rewind() can be used to reset the cursor.

      -

      Returns Promise<any[]>

    • Listens once to the abort event on the provided signal.

      +

    Returns this

    • Listens once to the abort event on the provided signal.

      Listening to the abort event on abort signals is unsafe and may lead to resource leaks since another third party with the signal can call e.stopImmediatePropagation(). Unfortunately Node.js cannot change diff --git a/docs/Next/classes/ServerSession.html b/docs/Next/classes/ServerSession.html index 9eba1f5a570..64f3ba77293 100644 --- a/docs/Next/classes/ServerSession.html +++ b/docs/Next/classes/ServerSession.html @@ -1,10 +1,10 @@ ServerSession | mongodb

      Class ServerSession

      Reflects the existence of a session on the server. Can be reused by the session pool. WARNING: not meant to be instantiated directly. For internal use only.

      -

      Properties

      id +

      Properties

      isDirty: boolean
      lastUse: number
      txnNumber: number

      Methods

      • Determines if the server session has timed out.

        +

      Properties

      isDirty: boolean
      lastUse: number
      txnNumber: number

      Methods

      • Determines if the server session has timed out.

        Parameters

        • sessionTimeoutMinutes: number

          The server's "logicalSessionTimeoutMinutes"

          -

        Returns boolean

      +

    Returns boolean

    diff --git a/docs/Next/classes/UnorderedBulkOperation.html b/docs/Next/classes/UnorderedBulkOperation.html index 9bf975c2b00..0e4690927a8 100644 --- a/docs/Next/classes/UnorderedBulkOperation.html +++ b/docs/Next/classes/UnorderedBulkOperation.html @@ -9,14 +9,14 @@ find insert raw -

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. +

    Properties

    isOrdered: boolean
    operationId?: number

    Accessors

    Methods

    • Builds a find operation for an update/updateOne/delete/deleteOne/replaceOne. Returns a builder object used to complete the definition of the operation.

      -

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline (requires Mongodb 4.2 or higher)
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute(); +

      Parameters

      Returns FindOperators

      const bulkOp = collection.initializeOrderedBulkOp();

      // Add an updateOne to the bulkOp
      bulkOp.find({ a: 1 }).updateOne({ $set: { b: 2 } });

      // Add an updateMany to the bulkOp
      bulkOp.find({ c: 3 }).update({ $set: { d: 4 } });

      // Add an upsert
      bulkOp.find({ e: 5 }).upsert().updateOne({ $set: { f: 6 } });

      // Add a deletion
      bulkOp.find({ g: 7 }).deleteOne();

      // Add a multi deletion
      bulkOp.find({ h: 8 }).delete();

      // Add a replaceOne
      bulkOp.find({ i: 9 }).replaceOne({writeConcern: { j: 10 }});

      // Update using a pipeline
      bulk.find({ k: 11, y: { $exists: true }, z: { $exists: true } }).updateOne([
      { $set: { total: { $sum: [ '$y', '$z' ] } } }
      ]);

      // All of the ops will now be executed
      await bulkOp.execute();
      -
    +
    diff --git a/docs/Next/classes/WriteConcern.html b/docs/Next/classes/WriteConcern.html index 9a3c475c23d..5fb2e7573a5 100644 --- a/docs/Next/classes/WriteConcern.html +++ b/docs/Next/classes/WriteConcern.html @@ -27,4 +27,4 @@
    wtimeoutMS?: number

    Specify a time limit to prevent write operations from blocking indefinitely.

    Methods

    +

    Parameters

    Returns undefined | WriteConcern

    diff --git a/docs/Next/classes/WriteConcernError.html b/docs/Next/classes/WriteConcernError.html index f9054492b75..5f1baf93f52 100644 --- a/docs/Next/classes/WriteConcernError.html +++ b/docs/Next/classes/WriteConcernError.html @@ -1,11 +1,11 @@ WriteConcernError | mongodb

    Class WriteConcernError

    An error representing a failure by the server to apply the requested write concern to the bulk operation.

    -

    Constructors

    Constructors

    Accessors

    Methods

    Constructors

    Accessors

    • get code(): undefined | number
    • Write concern error code.

      -

      Returns undefined | number

    • get errmsg(): undefined | string
    • Write concern error message.

      -

      Returns undefined | string

    Methods

    +

    Constructors

    Accessors

    • get code(): undefined | number
    • Write concern error code.

      +

      Returns undefined | number

    • get errmsg(): undefined | string
    • Write concern error message.

      +

      Returns undefined | string

    Methods

    diff --git a/docs/Next/classes/WriteError.html b/docs/Next/classes/WriteError.html index 8f3e45cb663..6d26e2b8b73 100644 --- a/docs/Next/classes/WriteError.html +++ b/docs/Next/classes/WriteError.html @@ -1,5 +1,5 @@ WriteError | mongodb

    Class WriteError

    An error that occurred during a BulkWrite on the server.

    -

    Constructors

    Constructors

    Properties

    Accessors

    code errInfo @@ -8,9 +8,9 @@

    Methods

    Constructors

    Properties

    Accessors

    • get errmsg(): undefined | string
    • WriteError message.

      -

      Returns undefined | string

    Methods

    • Returns {
          code: number;
          errmsg?: string;
          index: number;
          op: Document;
      }

      • code: number
      • Optionalerrmsg?: string
      • index: number
      • op: Document
    +

    Constructors

    Properties

    Accessors

    • get errmsg(): undefined | string
    • WriteError message.

      +

      Returns undefined | string

    Methods

    • Returns {
          code: number;
          errmsg?: string;
          index: number;
          op: Document;
      }

      • code: number
      • Optionalerrmsg?: string
      • index: number
      • op: Document
    diff --git a/docs/Next/functions/BSON.serialize.html b/docs/Next/functions/BSON.serialize.html index 4052e182d10..b15ca53f675 100644 --- a/docs/Next/functions/BSON.serialize.html +++ b/docs/Next/functions/BSON.serialize.html @@ -1,4 +1,4 @@ serialize | mongodb

    Function serialize

    • Serialize a Javascript object.

      Parameters

      Returns Uint8Array

      Buffer object containing the serialized object.

      -
    +
    diff --git a/docs/Next/functions/BSON.serializeWithBufferAndIndex.html b/docs/Next/functions/BSON.serializeWithBufferAndIndex.html index 0954402c29b..6964dcd5dde 100644 --- a/docs/Next/functions/BSON.serializeWithBufferAndIndex.html +++ b/docs/Next/functions/BSON.serializeWithBufferAndIndex.html @@ -3,4 +3,4 @@

    Parameters

    • object: Document

      the Javascript object to serialize.

    • finalBuffer: Uint8Array<ArrayBufferLike>

      the Buffer you pre-allocated to store the serialized BSON object.

    • Optionaloptions: SerializeOptions

    Returns number

    the index pointing to the last written byte in the buffer.

    -
    +
    diff --git a/docs/Next/functions/BSON.setInternalBufferSize.html b/docs/Next/functions/BSON.setInternalBufferSize.html index 45dc82cb76d..1d1116cec54 100644 --- a/docs/Next/functions/BSON.setInternalBufferSize.html +++ b/docs/Next/functions/BSON.setInternalBufferSize.html @@ -1,3 +1,3 @@ setInternalBufferSize | mongodb

    Function setInternalBufferSize

    • Sets the size of the internal serialization buffer.

      Parameters

      • size: number

        The desired size for the internal serialization buffer in bytes

        -

      Returns void

    +

    Returns void

    diff --git a/docs/Next/index.html b/docs/Next/index.html index 748aaa13d29..254df30c317 100644 --- a/docs/Next/index.html +++ b/docs/Next/index.html @@ -54,7 +54,7 @@ -

    Releases are created automatically and signed using the Node team's GPG key. This applies to the git tag as well as all release packages provided as part of a GitHub release. To verify the provided packages, download the key and import it using gpg:

    +

    Releases are created automatically and signed using the Node team's GPG key. All release packages provided as part of a GitHub release are signed. To verify the provided packages, download the key and import it using gpg:

    gpg --import node-driver.asc
     
    @@ -71,8 +71,12 @@

    [!Note] -No verification is done when using npm to install the package. The contents of the Github tarball and npm's tarball are identical.

    +No GPG verification is done when using npm to install the package. The contents of the GitHub tarball and npm's tarball are identical.

    +

    Releases published to the npm registry also include a provenance attestation, which cryptographically links the package to its source repository and build workflow. To verify provenance:

    +
    npm audit signatures
    +
    +

    The MongoDB Node.js driver follows semantic versioning for its releases.

    Think you’ve found a bug? Want to see a new feature in node-mongodb-native? Please open a case in our issue management tool, JIRA:

    @@ -85,7 +89,7 @@ Core Server (i.e. SERVER) project are public.

    For issues with, questions about, or feedback for the Node.js driver, please look into our support channels. Please do not email any of the driver developers directly with issues or questions - you're more likely to get an answer on the MongoDB Community Forums.

    Change history can be found in HISTORY.md.

    -

    The driver currently supports 4.2+ servers.

    +

    The driver currently supports 4.4+ servers.

    For exhaustive server and runtime version compatibility matrices, please refer to the following links:

    If an internal MongoClient is created, it is configured with the same options as the parent MongoClient except minPoolSize is set to 0 and AutoEncryptionOptions is omitted.

    -
    autoSelectFamily?: boolean

    v18.13.0

    +
    autoSelectFamily?: boolean

    v18.13.0

    autoSelectFamilyAttemptTimeout?: number

    v18.13.0

    bsonRegExp?: boolean

    return BSON regular expressions as BSONRegExp instances.

    false

    @@ -136,7 +136,7 @@ able to validate the certificate, and the handshake will fail.

    checkKeys?: boolean

    the serializer will check if keys are valid.

    false

    -
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        +
    checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined)

    Type declaration

      • (hostname, cert): Error | undefined
      • Verifies the certificate cert is issued to hostname.

        Returns Error object, populating it with reason, host, and cert on failure. On success, returns undefined.

        This function is intended to be used in combination with thecheckServerIdentity option that can be passed to connect and as @@ -160,12 +160,12 @@

    connectTimeoutMS?: number

    The time in milliseconds to attempt a connection before timing out.

    crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    directConnection?: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    -
    driverInfo?: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver +

    driverInfo?: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver /*

    • Will be made internal in a future major release.
    -
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve +

    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use crypto.getCurves() to obtain a list of available curve names. On @@ -178,17 +178,18 @@ More information about the overload policy in drivers:

  • https://github.com/mongodb/specifications/blob/master/source/client-backpressure/client-backpressure.md#overload-retry-policy
  • -
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    -
    family?: number
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    +

    This option works with MongoDB Atlas Server Version 9.0 and above.

    +
    enableUtf8Validation?: boolean

    Enable utf8 validation when deserializing BSON documents. Defaults to true.

    +
    family?: number
    fieldsAsRaw?: Document

    allow to specify if there what fields we wish to return as unserialized raw buffer.

    null

    forceServerObjectId?: boolean

    Force server to assign _id values instead of driver

    -
    heartbeatFrequencyMS?: number

    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

    +
    heartbeatFrequencyMS?: number

    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

    hints?: number
    ignoreUndefined?: boolean

    serialize will not emit undefined fields note that the driver sets this to false

    true

    -
    journal?: boolean

    The journal write concern

    +
    journal?: boolean

    The journal write concern

    Please use the writeConcern option instead

    -
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    +
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    key?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | KeyObject)[]

    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be @@ -198,10 +199,11 @@ object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    loadBalanced?: boolean

    Instruct the driver it is connecting to a load balancer fronting a mongos like service

    -
    localAddress?: string
    localPort?: number
    localThresholdMS?: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    +
    localAddress?: string
    localPort?: number
    localThresholdMS?: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    lookup?: LookupFunction
    maxAdaptiveRetries?: number

    The maximum number of retries during server overload. Set to 0 to disable overload retries. Defaults to 2.

    maxConnecting?: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    +

    This option works with MongoDB Atlas Server Version 9.0 and above.

    +
    maxConnecting?: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    maxIdleTimeMS?: number

    The maximum amount of time a connection should remain idle in the connection pool before being marked idle, in milliseconds. If specified, this must be a number greater than or equal to 0, where 0 means there is no limit. Defaults to 0. After this time passes, the idle collection can be automatically cleaned up in the background.

    @@ -210,12 +212,12 @@
    minDHSize?: number
    minHeartbeatFrequencyMS?: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    minPoolSize?: number

    The minimum number of connections in the connection pool.

    mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions

    Enable logging level per component or use default to control any unset components.

    -
    mongodbLogMaxDocumentLength?: number

    All BSON documents are stringified to EJSON. This controls the maximum length of those strings. +

    mongodbLogMaxDocumentLength?: number

    All BSON documents are stringified to EJSON. This controls the maximum length of those strings. It is defaulted to 1000.

    -
    mongodbLogPath?: "stderr" | "stdout" | MongoDBLogWritable

    Specifies the destination of the driver's logging. The default is stderr.

    -
    monitorCommands?: boolean

    Enable command monitoring for this client

    -
    noDelay?: boolean

    TCP Connection no delay

    -
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    +
    mongodbLogPath?: "stderr" | "stdout" | MongoDBLogWritable

    Specifies the destination of the driver's logging. The default is stderr.

    +
    monitorCommands?: boolean

    Enable command monitoring for this client

    +
    noDelay?: boolean

    TCP Connection no delay

    +
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    pfx?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple @@ -225,17 +227,17 @@ object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    pkFactory?: PkFactory

    A primary key factory function for generation of custom _id keys

    -
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    +
    promoteBuffers?: boolean

    when deserializing a Binary will return it as a node.js Buffer instance.

    false

    promoteLongs?: boolean

    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

    true

    promoteValues?: boolean

    when deserializing will promote BSON values to their Node.js closest equivalent types.

    true

    proxyHost?: string

    Configures a Socks5 proxy host used for creating TCP connections.

    -
    proxyPassword?: string

    Configures a Socks5 proxy password when the proxy in proxyHost requires username/password authentication.

    -
    proxyPort?: number

    Configures a Socks5 proxy port used for creating TCP connections.

    -
    proxyUsername?: string

    Configures a Socks5 proxy username when the proxy in proxyHost requires username/password authentication.

    -
    raw?: boolean

    Enabling the raw option will return a Node.js Buffer +

    proxyPassword?: string

    Configures a Socks5 proxy password when the proxy in proxyHost requires username/password authentication.

    +
    proxyPort?: number

    Configures a Socks5 proxy port used for creating TCP connections.

    +
    proxyUsername?: string

    Configures a Socks5 proxy username when the proxy in proxyHost requires username/password authentication.

    +
    raw?: boolean

    Enabling the raw option will return a Node.js Buffer which is allocated using allocUnsafe API. See this section from the Node.js Docs here for more detail about what "unsafe" refers to in this context. @@ -246,7 +248,7 @@

    Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). It does correctly work at Db, Collection, and per operation the same as other BSON options work.

    -
    readConcern?: ReadConcernLike

    Specify a read concern for the collection (only MongoDB 3.2 or higher supported)

    +
    readConcern?: ReadConcernLike

    Specify a read concern for the collection (only MongoDB 3.2 or higher supported)

    readConcernLevel?: ReadConcernLevel

    The level of isolation

    Specifies the read preferences for this connection

    readPreferenceTags?: TagSet[]

    Specifies the tags document as a comma-separated list of colon-separated key-value pairs.

    @@ -260,7 +262,7 @@
    retryReads?: boolean

    Enables retryable reads.

    retryWrites?: boolean

    Enable retryable writes.

    runtimeAdapters?: RuntimeAdapters

    If provided, any adapters provided will be used in place of the corresponding Node.js module.

    -
    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    +
    secureContext?: SecureContext

    An optional TLS context object from tls.createSecureContext()

    secureProtocol?: string

    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use @@ -272,9 +274,9 @@

    serializeFunctions?: boolean

    serialize the javascript functions

    false

    -
    serverApi?: "1" | ServerApi

    Server API version

    -
    serverMonitoringMode?: ServerMonitoringMode

    Instructs the driver monitors to use a specific monitoring mode

    -
    servername?: string
    serverSelectionTimeoutMS?: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    +
    serverApi?: "1" | ServerApi

    Server API version

    +
    serverMonitoringMode?: ServerMonitoringMode

    Instructs the driver monitors to use a specific monitoring mode

    +
    servername?: string
    serverSelectionTimeoutMS?: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    session?: Buffer<ArrayBufferLike>

    An optional Buffer instance containing a TLS session.

    socketTimeoutMS?: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    srvMaxHosts?: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    @@ -295,11 +297,11 @@
    w?: W

    The write concern w value

    Please use the writeConcern option instead

    -
    waitQueueTimeoutMS?: number

    The maximum time in milliseconds that a thread can wait for a connection to become available.

    +
    waitQueueTimeoutMS?: number

    The maximum time in milliseconds that a thread can wait for a connection to become available.

    A MongoDB WriteConcern, which describes the level of acknowledgement requested from MongoDB for write operations.

    wtimeoutMS?: number

    The write concern timeout

    +
    wtimeoutMS?: number

    The write concern timeout

    Please use the writeConcern option instead

    -
    zlibCompressionLevel?:
        | 0
        | 5
        | 1
        | 4
        | 8
        | 2
        | 3
        | 9
        | 6
        | 7

    An integer that specifies the compression level if using zlib for network compression.

    +
    zlibCompressionLevel?:
        | 0
        | 5
        | 1
        | 4
        | 8
        | 2
        | 3
        | 9
        | 6
        | 7

    An integer that specifies the compression level if using zlib for network compression.

    diff --git a/docs/Next/interfaces/MongoCredentialsOptions.html b/docs/Next/interfaces/MongoCredentialsOptions.html index f4ca80a044c..504d2396350 100644 --- a/docs/Next/interfaces/MongoCredentialsOptions.html +++ b/docs/Next/interfaces/MongoCredentialsOptions.html @@ -1,7 +1,7 @@ -MongoCredentialsOptions | mongodb

    Interface MongoCredentialsOptions

    interface MongoCredentialsOptions {
        db?: string;
        mechanism?: AuthMechanism;
        mechanismProperties: AuthMechanismProperties;
        password: string;
        source: string;
        username?: string;
    }

    Properties

    db? +MongoCredentialsOptions | mongodb

    Interface MongoCredentialsOptions

    interface MongoCredentialsOptions {
        db?: string;
        mechanism?: AuthMechanism;
        mechanismProperties: AuthMechanismProperties;
        password: string;
        source: string;
        username?: string;
    }

    Properties

    db?: string
    mechanism?: AuthMechanism
    mechanismProperties: AuthMechanismProperties
    password: string
    source: string
    username?: string
    +

    Properties

    db?: string
    mechanism?: AuthMechanism
    mechanismProperties: AuthMechanismProperties
    password: string
    source: string
    username?: string
    diff --git a/docs/Next/interfaces/MongoNetworkErrorOptions.html b/docs/Next/interfaces/MongoNetworkErrorOptions.html index f46e30b6bc1..6a8c80876bc 100644 --- a/docs/Next/interfaces/MongoNetworkErrorOptions.html +++ b/docs/Next/interfaces/MongoNetworkErrorOptions.html @@ -1,4 +1,4 @@ -MongoNetworkErrorOptions | mongodb

    Interface MongoNetworkErrorOptions

    interface MongoNetworkErrorOptions {
        beforeHandshake?: boolean;
        cause?: Error;
    }

    Properties

    beforeHandshake? +MongoNetworkErrorOptions | mongodb

    Interface MongoNetworkErrorOptions

    interface MongoNetworkErrorOptions {
        beforeHandshake?: boolean;
        cause?: Error;
    }

    Properties

    beforeHandshake?: boolean

    Indicates the timeout happened before a connection handshake completed

    -
    cause?: Error
    +
    cause?: Error
    diff --git a/docs/Next/interfaces/MongoOptions.html b/docs/Next/interfaces/MongoOptions.html index 7dba32e0c9d..b06f11c8fea 100644 --- a/docs/Next/interfaces/MongoOptions.html +++ b/docs/Next/interfaces/MongoOptions.html @@ -11,7 +11,7 @@
  • DNS SRV records and TXT records
  • Not all options may be present after client construction as some are obtained from asynchronous operations.

    -
    interface MongoOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: readonly string[] | ArrayBufferView<ArrayBufferLike>;
        appName?: string;
        autoEncryption: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        cert?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        dbName: string;
        directConnection: boolean;
        driverInfo: DriverInfo;
        ecdhCurve?: string;
        enableOverloadRetargeting: boolean;
        family?: number;
        forceServerObjectId: boolean;
        heartbeatFrequencyMS: number;
        hints?: number;
        hosts: HostAddress[];
        keepAliveInitialDelay?: number;
        key?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS: number;
        lookup?: LookupFunction;
        maxAdaptiveRetries: number;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        minDHSize?: number;
        minHeartbeatFrequencyMS: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay: boolean;
        passphrase?: string;
        pfx?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | PxfObject)[];
        pkFactory: PkFactory;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw: boolean;
        readConcern: ReadConcern;
        readPreference: ReadPreference;
        rejectUnauthorized?: boolean;
        replicaSet: string;
        retryReads: boolean;
        retryWrites: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi: ServerApi;
        serverMonitoringMode: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS: number;
        session?: Buffer<ArrayBufferLike>;
        socketTimeoutMS: number;
        srvHost?: string;
        srvMaxHosts: number;
        srvServiceName: string;
        timeoutMS?: number;
        tls: boolean;
        tlsAllowInvalidCertificates: boolean;
        tlsAllowInvalidHostnames: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCRLFile?: string;
        tlsInsecure: boolean;
        waitQueueTimeoutMS: number;
        writeConcern: WriteConcern;
        zlibCompressionLevel:
            | 0
            | 1
            | 2
            | 3
            | 4
            | 5
            | 6
            | 7
            | 8
            | 9;
    }

    Hierarchy (view full)

    • Required<Pick<MongoClientOptions,
          | "maxAdaptiveRetries"
          | "enableOverloadRetargeting"
          | "autoEncryption"
          | "connectTimeoutMS"
          | "directConnection"
          | "driverInfo"
          | "forceServerObjectId"
          | "minHeartbeatFrequencyMS"
          | "heartbeatFrequencyMS"
          | "localThresholdMS"
          | "maxConnecting"
          | "maxIdleTimeMS"
          | "maxPoolSize"
          | "minPoolSize"
          | "monitorCommands"
          | "noDelay"
          | "pkFactory"
          | "raw"
          | "replicaSet"
          | "retryReads"
          | "retryWrites"
          | "serverSelectionTimeoutMS"
          | "socketTimeoutMS"
          | "srvMaxHosts"
          | "srvServiceName"
          | "tlsAllowInvalidCertificates"
          | "tlsAllowInvalidHostnames"
          | "tlsInsecure"
          | "waitQueueTimeoutMS"
          | "zlibCompressionLevel">>
    • SupportedNodeConnectionOptions
      • MongoOptions

    Properties

    interface MongoOptions {
        allowPartialTrustChain?: boolean;
        ALPNProtocols?: readonly string[] | ArrayBufferView<ArrayBufferLike>;
        appName?: string;
        autoEncryption: AutoEncryptionOptions;
        autoSelectFamily?: boolean;
        autoSelectFamilyAttemptTimeout?: number;
        ca?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        cert?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        checkServerIdentity?: ((hostname: string, cert: PeerCertificate) => Error | undefined);
        ciphers?: string;
        compressors: (
            | "none"
            | "snappy"
            | "zlib"
            | "zstd")[];
        connectTimeoutMS: number;
        credentials?: MongoCredentials;
        crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[];
        dbName: string;
        directConnection: boolean;
        driverInfo: DriverInfo;
        ecdhCurve?: string;
        enableOverloadRetargeting: boolean;
        family?: number;
        forceServerObjectId: boolean;
        heartbeatFrequencyMS: number;
        hints?: number;
        hosts: HostAddress[];
        keepAliveInitialDelay?: number;
        key?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | KeyObject)[];
        loadBalanced: boolean;
        localAddress?: string;
        localPort?: number;
        localThresholdMS: number;
        lookup?: LookupFunction;
        maxAdaptiveRetries: number;
        maxConnecting: number;
        maxIdleTimeMS: number;
        maxPoolSize: number;
        minDHSize?: number;
        minHeartbeatFrequencyMS: number;
        minPoolSize: number;
        monitorCommands: boolean;
        noDelay: boolean;
        passphrase?: string;
        pfx?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | PxfObject)[];
        pkFactory: PkFactory;
        proxyHost?: string;
        proxyPassword?: string;
        proxyPort?: number;
        proxyUsername?: string;
        raw: boolean;
        readConcern: ReadConcern;
        readPreference: ReadPreference;
        rejectUnauthorized?: boolean;
        replicaSet: string;
        retryReads: boolean;
        retryWrites: boolean;
        secureContext?: SecureContext;
        secureProtocol?: string;
        serverApi: ServerApi;
        serverMonitoringMode: ServerMonitoringMode;
        servername?: string;
        serverSelectionTimeoutMS: number;
        session?: Buffer<ArrayBufferLike>;
        socketTimeoutMS: number;
        srvHost?: string;
        srvMaxHosts: number;
        srvServiceName: string;
        timeoutMS?: number;
        tls: boolean;
        tlsAllowInvalidCertificates: boolean;
        tlsAllowInvalidHostnames: boolean;
        tlsCAFile?: string;
        tlsCertificateKeyFile?: string;
        tlsCRLFile?: string;
        tlsInsecure: boolean;
        waitQueueTimeoutMS: number;
        writeConcern: WriteConcern;
        zlibCompressionLevel:
            | 0
            | 1
            | 2
            | 3
            | 4
            | 5
            | 6
            | 7
            | 8
            | 9;
    }

    Hierarchy (view full)

    • Required<Pick<MongoClientOptions,
          | "maxAdaptiveRetries"
          | "enableOverloadRetargeting"
          | "autoEncryption"
          | "connectTimeoutMS"
          | "directConnection"
          | "driverInfo"
          | "forceServerObjectId"
          | "minHeartbeatFrequencyMS"
          | "heartbeatFrequencyMS"
          | "localThresholdMS"
          | "maxConnecting"
          | "maxIdleTimeMS"
          | "maxPoolSize"
          | "minPoolSize"
          | "monitorCommands"
          | "noDelay"
          | "pkFactory"
          | "raw"
          | "replicaSet"
          | "retryReads"
          | "retryWrites"
          | "serverSelectionTimeoutMS"
          | "socketTimeoutMS"
          | "srvMaxHosts"
          | "srvServiceName"
          | "tlsAllowInvalidCertificates"
          | "tlsAllowInvalidHostnames"
          | "tlsInsecure"
          | "waitQueueTimeoutMS"
          | "zlibCompressionLevel">>
    • SupportedNodeConnectionOptions
      • MongoOptions

    Properties

    v22.9.0, v20.18.0

    ALPNProtocols?: readonly string[] | ArrayBufferView<ArrayBufferLike>

    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

    -
    appName?: string
    autoEncryption: AutoEncryptionOptions

    Optionally enable in-use auto encryption

    +
    appName?: string
    autoEncryption: AutoEncryptionOptions

    Optionally enable in-use auto encryption

    Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error (see libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption=true in AutoEncryptionOpts.

    Automatic encryption requires the authenticated user to have the listCollections privilege action.

    @@ -102,7 +102,7 @@
  • AutoEncryptionOptions.bypassAutomaticEncryption is false.
  • If an internal MongoClient is created, it is configured with the same options as the parent MongoClient except minPoolSize is set to 0 and AutoEncryptionOptions is omitted.

    -
    autoSelectFamily?: boolean

    v18.13.0

    +
    autoSelectFamily?: boolean

    v18.13.0

    autoSelectFamilyAttemptTimeout?: number

    v18.13.0

    ca?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

    Optionally override the trusted CA certificates. Default is to trust the well-known CAs curated by Mozilla. Mozilla's CAs are completely @@ -136,15 +136,15 @@ information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

    -
    compressors: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS: number

    The time in milliseconds to attempt a connection before timing out.

    -
    credentials?: MongoCredentials
    crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    -
    dbName: string
    directConnection: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    -
    driverInfo: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver +

    compressors: (
        | "none"
        | "snappy"
        | "zlib"
        | "zstd")[]
    connectTimeoutMS: number

    The time in milliseconds to attempt a connection before timing out.

    +
    credentials?: MongoCredentials
    crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

    PEM formatted CRLs (Certificate Revocation Lists).

    +
    dbName: string
    directConnection: boolean

    Allow a driver to force a Single topology type with a connection string containing one host

    +
    driverInfo: DriverInfo

    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver /*

    • Will be made internal in a future major release.
    -
    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve +

    ecdhCurve?: string

    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use crypto.getCurves() to obtain a list of available curve names. On @@ -157,9 +157,10 @@ More information about the overload policy in drivers:

  • https://github.com/mongodb/specifications/blob/master/source/client-backpressure/client-backpressure.md#overload-retry-policy
  • -
    family?: number
    forceServerObjectId: boolean

    Force server to assign _id values instead of driver

    -
    heartbeatFrequencyMS: number

    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

    -
    hints?: number
    hosts: HostAddress[]
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    +

    This option works with MongoDB Atlas Server Version 9.0 and above.

    +
    family?: number
    forceServerObjectId: boolean

    Force server to assign _id values instead of driver

    +
    heartbeatFrequencyMS: number

    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

    +
    hints?: number
    hosts: HostAddress[]
    keepAliveInitialDelay?: number

    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

    key?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | KeyObject)[]

    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be @@ -168,10 +169,11 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    -
    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    localThresholdMS: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    +
    loadBalanced: boolean
    localAddress?: string
    localPort?: number
    localThresholdMS: number

    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

    lookup?: LookupFunction
    maxAdaptiveRetries: number

    The maximum number of retries during server overload. Set to 0 to disable overload retries. Defaults to 2.

    maxConnecting: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    +

    This option works with MongoDB Atlas Server Version 9.0 and above.

    +
    maxConnecting: number

    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

    maxIdleTimeMS: number

    The maximum amount of time a connection should remain idle in the connection pool before being marked idle, in milliseconds. If specified, this must be a number greater than or equal to 0, where 0 means there is no limit. Defaults to 0. After this time passes, the idle collection can be automatically cleaned up in the background.

    @@ -179,8 +181,8 @@
    minDHSize?: number
    minHeartbeatFrequencyMS: number

    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

    minPoolSize: number

    The minimum number of connections in the connection pool.

    monitorCommands: boolean

    Enable command monitoring for this client

    -
    noDelay: boolean

    TCP Connection no delay

    -
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    +
    noDelay: boolean

    TCP Connection no delay

    +
    passphrase?: string

    Shared passphrase used for a single private key and/or a PFX.

    pfx?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike> | PxfObject)[]

    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple @@ -190,7 +192,7 @@ object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

    pkFactory: PkFactory

    A primary key factory function for generation of custom _id keys

    -
    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    raw: boolean

    Enabling the raw option will return a Node.js Buffer +

    proxyHost?: string
    proxyPassword?: string
    proxyPort?: number
    proxyUsername?: string
    raw: boolean

    Enabling the raw option will return a Node.js Buffer which is allocated using allocUnsafe API. See this section from the Node.js Docs here for more detail about what "unsafe" refers to in this context. @@ -201,7 +203,7 @@

    Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). It does correctly work at Db, Collection, and per operation the same as other BSON options work.

    -
    readConcern: ReadConcern
    readPreference: ReadPreference
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not +

    readConcern: ReadConcern
    readPreference: ReadPreference
    rejectUnauthorized?: boolean

    If true the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.

    true
    @@ -220,14 +222,14 @@ 
    serverApi: ServerApi
    serverMonitoringMode: ServerMonitoringMode
    servername?: string
    serverSelectionTimeoutMS: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    +
    serverApi: ServerApi
    serverMonitoringMode: ServerMonitoringMode
    servername?: string
    serverSelectionTimeoutMS: number

    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

    session?: Buffer<ArrayBufferLike>

    An optional Buffer instance containing a TLS session.

    socketTimeoutMS: number

    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

    -
    srvHost?: string
    srvMaxHosts: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    +
    srvHost?: string
    srvMaxHosts: number

    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

    srvServiceName: string

    Modifies the srv URI to look like:

    _{srvServiceName}._tcp.{hostname}.{domainname}

    Querying this DNS URI is expected to respond with SRV records

    -
    timeoutMS?: number
    tls: boolean

    NOTE ABOUT TLS Options

    If tls is provided as an option, it is equivalent to setting the ssl option.

    +
    timeoutMS?: number
    tls: boolean

    NOTE ABOUT TLS Options

    If tls is provided as an option, it is equivalent to setting the ssl option.

    NodeJS native TLS options are passed through to the socket and retain their original types.

    @@ -290,9 +292,9 @@
    -
    +
    diff --git a/docs/Next/types/BSON.LongWithoutOverrides.html b/docs/Next/types/BSON.LongWithoutOverrides.html index 303bde0f9d6..a97b93954f1 100644 --- a/docs/Next/types/BSON.LongWithoutOverrides.html +++ b/docs/Next/types/BSON.LongWithoutOverrides.html @@ -1 +1 @@ -LongWithoutOverrides | mongodb

    Type Alias LongWithoutOverrides

    LongWithoutOverrides: (new (low: unknown, high?: number | boolean, unsigned?: boolean) => {
        [P in Exclude<keyof Long, TimestampOverrides>]: Long[P]
    })
    +LongWithoutOverrides | mongodb

    Type Alias LongWithoutOverrides

    LongWithoutOverrides: (new (low: unknown, high?: number | boolean, unsigned?: boolean) => {
        [P in TimestampKept]: Long[P]
    })
    diff --git a/docs/Next/types/BSON.OnDemand.html b/docs/Next/types/BSON.OnDemand.html index b2ebff3b2b2..10b4f0d5f64 100644 --- a/docs/Next/types/BSON.OnDemand.html +++ b/docs/Next/types/BSON.OnDemand.html @@ -1,2 +1,2 @@ OnDemand | mongodb

    Type Alias OnDemandExperimental

    OnDemand: {
        BSONElement: BSONElement;
        ByteUtils: BSON.ByteUtils;
        NumberUtils: BSON.NumberUtils;
        parseToElements: ((this: void, bytes: Uint8Array, startOffset?: number) => Iterable<BSONElement>);
    }

    A new set of BSON APIs that are currently experimental and not intended for production use.

    -
    +
    diff --git a/docs/Next/types/BSON.TimestampOverrides.html b/docs/Next/types/BSON.TimestampOverrides.html index 4595d4f898f..fe95a960659 100644 --- a/docs/Next/types/BSON.TimestampOverrides.html +++ b/docs/Next/types/BSON.TimestampOverrides.html @@ -1 +1,2 @@ -TimestampOverrides | mongodb

    Type Alias TimestampOverrides

    TimestampOverrides:
        | "_bsontype"
        | "toExtendedJSON"
        | "fromExtendedJSON"
        | "inspect"
        | typeof bsonType
    +TimestampOverrides | mongodb

    Type Alias TimestampOverrides

    TimestampOverrides:
        | "_bsontype"
        | "toExtendedJSON"
        | "fromExtendedJSON"
        | "inspect"
        | typeof bsonType

    This type is no longer used internally and will be removed in a future version.

    +
    diff --git a/docs/Next/types/BSON.UUIDExtended.html b/docs/Next/types/BSON.UUIDExtended.html index a5253775e37..676cd4126dd 100644 --- a/docs/Next/types/BSON.UUIDExtended.html +++ b/docs/Next/types/BSON.UUIDExtended.html @@ -1 +1 @@ -UUIDExtended | mongodb

    Type Alias UUIDExtended

    UUIDExtended: {
        $uuid: string;
    }
    +UUIDExtended | mongodb

    Type Alias UUIDExtended

    UUIDExtended: {
        $uuid: string;
    }
    diff --git a/docs/Next/types/CSFLEKMSTlsOptions.html b/docs/Next/types/CSFLEKMSTlsOptions.html index 5a1c7c880db..b9755219a10 100644 --- a/docs/Next/types/CSFLEKMSTlsOptions.html +++ b/docs/Next/types/CSFLEKMSTlsOptions.html @@ -1 +1 @@ -CSFLEKMSTlsOptions | mongodb

    Type Alias CSFLEKMSTlsOptions

    CSFLEKMSTlsOptions: {
        aws?: ClientEncryptionTlsOptions;
        azure?: ClientEncryptionTlsOptions;
        gcp?: ClientEncryptionTlsOptions;
        kmip?: ClientEncryptionTlsOptions;
        local?: ClientEncryptionTlsOptions;
        [key: string]: ClientEncryptionTlsOptions | undefined;
    }
    +CSFLEKMSTlsOptions | mongodb

    Type Alias CSFLEKMSTlsOptions

    CSFLEKMSTlsOptions: {
        aws?: ClientEncryptionTlsOptions;
        azure?: ClientEncryptionTlsOptions;
        gcp?: ClientEncryptionTlsOptions;
        kmip?: ClientEncryptionTlsOptions;
        local?: ClientEncryptionTlsOptions;
        [key: string]: ClientEncryptionTlsOptions | undefined;
    }
    diff --git a/docs/Next/types/ClientEncryptionSocketOptions.html b/docs/Next/types/ClientEncryptionSocketOptions.html index 6934e30a58f..d1ed004319e 100644 --- a/docs/Next/types/ClientEncryptionSocketOptions.html +++ b/docs/Next/types/ClientEncryptionSocketOptions.html @@ -1,2 +1,2 @@ ClientEncryptionSocketOptions | mongodb

    Type Alias ClientEncryptionSocketOptions

    ClientEncryptionSocketOptions: Pick<MongoClientOptions, "autoSelectFamily" | "autoSelectFamilyAttemptTimeout">

    Socket options to use for KMS requests.

    -
    +
    diff --git a/docs/Next/types/ClientEncryptionTlsOptions.html b/docs/Next/types/ClientEncryptionTlsOptions.html index 605c764ccd9..85ea072dd5e 100644 --- a/docs/Next/types/ClientEncryptionTlsOptions.html +++ b/docs/Next/types/ClientEncryptionTlsOptions.html @@ -6,4 +6,4 @@
  • tlsInsecure
  • These options are not included in the type, and are ignored if provided.

    -
    +
    diff --git a/docs/Next/types/DropIndexesOptions.html b/docs/Next/types/DropIndexesOptions.html index 8e73d66e4d7..844d2a33184 100644 --- a/docs/Next/types/DropIndexesOptions.html +++ b/docs/Next/types/DropIndexesOptions.html @@ -1 +1 @@ -DropIndexesOptions | mongodb

    Type Alias DropIndexesOptions

    DropIndexesOptions: CommandOperationOptions
    +DropIndexesOptions | mongodb

    Type Alias DropIndexesOptions

    DropIndexesOptions: CommandOperationOptions
    diff --git a/docs/Next/types/EventEmitterWithState.html b/docs/Next/types/EventEmitterWithState.html index 8f8a70c78f6..466cc444091 100644 --- a/docs/Next/types/EventEmitterWithState.html +++ b/docs/Next/types/EventEmitterWithState.html @@ -1 +1 @@ -EventEmitterWithState | mongodb

    Type Alias EventEmitterWithState

    EventEmitterWithState: {}
    +EventEmitterWithState | mongodb

    Type Alias EventEmitterWithState

    EventEmitterWithState: {}
    diff --git a/docs/Next/types/IndexDescriptionCompact.html b/docs/Next/types/IndexDescriptionCompact.html index dc2d4498850..db9de90446d 100644 --- a/docs/Next/types/IndexDescriptionCompact.html +++ b/docs/Next/types/IndexDescriptionCompact.html @@ -1 +1 @@ -IndexDescriptionCompact | mongodb

    Type Alias IndexDescriptionCompact

    IndexDescriptionCompact: Record<string, [name: string, direction: IndexDirection][]>
    +IndexDescriptionCompact | mongodb

    Type Alias IndexDescriptionCompact

    IndexDescriptionCompact: Record<string, [name: string, direction: IndexDirection][]>
    diff --git a/docs/Next/types/IndexDescriptionInfo.html b/docs/Next/types/IndexDescriptionInfo.html index d121a5296b5..6919568a554 100644 --- a/docs/Next/types/IndexDescriptionInfo.html +++ b/docs/Next/types/IndexDescriptionInfo.html @@ -1,2 +1,2 @@ IndexDescriptionInfo | mongodb

    Type Alias IndexDescriptionInfo

    IndexDescriptionInfo: Omit<IndexDescription, "key" | "version"> & {
        key: {
            [key: string]: IndexDirection;
        };
        v?: IndexDescription["version"];
    } & Document
    +
    diff --git a/docs/Next/types/IndexDirection.html b/docs/Next/types/IndexDirection.html index 98d5a291ec2..afe8ca40b0e 100644 --- a/docs/Next/types/IndexDirection.html +++ b/docs/Next/types/IndexDirection.html @@ -1 +1 @@ -IndexDirection | mongodb

    Type Alias IndexDirection

    IndexDirection:
        | -1
        | 1
        | "2d"
        | "2dsphere"
        | "text"
        | "geoHaystack"
        | "hashed"
        | number
    +IndexDirection | mongodb

    Type Alias IndexDirection

    IndexDirection:
        | -1
        | 1
        | "2d"
        | "2dsphere"
        | "text"
        | "geoHaystack"
        | "hashed"
        | number
    diff --git a/docs/Next/types/IndexSpecification.html b/docs/Next/types/IndexSpecification.html index b63cf97f05b..560a19262fc 100644 --- a/docs/Next/types/IndexSpecification.html +++ b/docs/Next/types/IndexSpecification.html @@ -1 +1 @@ -IndexSpecification | mongodb

    Type Alias IndexSpecification

    IndexSpecification: OneOrMore<
        | string
        | [string, IndexDirection]
        | {
            [key: string]: IndexDirection;
        }
        | Map<string, IndexDirection>>
    +IndexSpecification | mongodb

    Type Alias IndexSpecification

    IndexSpecification: OneOrMore<
        | string
        | [string, IndexDirection]
        | {
            [key: string]: IndexDirection;
        }
        | Map<string, IndexDirection>>
    diff --git a/docs/Next/types/KMSConnectCallback.html b/docs/Next/types/KMSConnectCallback.html new file mode 100644 index 00000000000..2a27501d001 --- /dev/null +++ b/docs/Next/types/KMSConnectCallback.html @@ -0,0 +1,17 @@ +KMSConnectCallback | mongodb

    Type Alias KMSConnectCallback

    KMSConnectCallback: ((options: {
        host: string;
        port: number;
        signal: AbortSignal;
        timeoutMS?: number;
    }) => Promise<Duplex>)

    A callback that establishes the connection to a KMS host.

    +

    When provided on AutoEncryptionOptions or ClientEncryptionOptions, the driver invokes this +callback instead of connecting to the KMS host itself, passing the target host and port. The +callback MUST return a Duplex stream connected to the KMS host, either directly or tunneled +through a proxy; a net.Socket satisfies this, as does any other Duplex. The returned stream is +passed to Node.js' tls.connect() as its socket, and the driver performs the KMS host's TLS +handshake over it using the KMS provider's configured TLS options. The callback therefore MUST NOT +perform the KMS host's TLS handshake itself, though it MAY use TLS for its own transport, e.g. when +connecting to an HTTPS proxy. This enables routing KMS requests through an HTTP proxy via the HTTP +CONNECT method.

    +

    When the operation has a client-side operation timeout (CSOT) configured, timeoutMS is the +remaining time budget in milliseconds; it is undefined otherwise. The signal aborts when the +connection attempt exceeds that budget; the callback should stop connecting and reject when it fires.

    +
    import * as net from 'net';

    const kmsConnectCallback: KMSConnectCallback = ({ host, port, signal }) =>
    new Promise((resolve, reject) => {
    // Open a plain connection to the proxy, not to the KMS host.
    const socket = net.connect({ host: 'proxy.example.com', port: 8080, signal });
    socket.once('error', reject);
    socket.once('connect', () => {
    // Ask the proxy to tunnel to the KMS host, then hand the socket back for the driver's TLS.
    socket.write(`CONNECT ${host}:${port} HTTP/1.1\r\nHost: ${host}:${port}\r\n\r\n`);
    socket.once('data', chunk => {
    if (chunk.toString('utf8').startsWith('HTTP/1.1 200')) resolve(socket);
    else reject(new Error('Proxy refused the CONNECT request'));
    });
    });
    });

    const clientEncryption = new ClientEncryption(keyVaultClient, {
    keyVaultNamespace,
    kmsProviders,
    kmsConnectCallback
    }); +
    + +
    diff --git a/docs/Next/types/ListIndexesOptions.html b/docs/Next/types/ListIndexesOptions.html index ee9ff0e0a90..471d0aee46c 100644 --- a/docs/Next/types/ListIndexesOptions.html +++ b/docs/Next/types/ListIndexesOptions.html @@ -1 +1 @@ -ListIndexesOptions | mongodb

    Type Alias ListIndexesOptions

    ListIndexesOptions: AbstractCursorOptions & {}
    +ListIndexesOptions | mongodb

    Type Alias ListIndexesOptions

    ListIndexesOptions: AbstractCursorOptions & {}
    diff --git a/docs/Next/types/MongoClientEvents.html b/docs/Next/types/MongoClientEvents.html index 16ef0588bb9..75f1eca3c48 100644 --- a/docs/Next/types/MongoClientEvents.html +++ b/docs/Next/types/MongoClientEvents.html @@ -1 +1 @@ -MongoClientEvents | mongodb

    Type Alias MongoClientEvents

    MongoClientEvents: Pick<TopologyEvents, typeof MONGO_CLIENT_EVENTS[number]> & {
        open(mongoClient: MongoClient): void;
    }
    +MongoClientEvents | mongodb

    Type Alias MongoClientEvents

    MongoClientEvents: Pick<TopologyEvents, typeof MONGO_CLIENT_EVENTS[number]> & {
        open(mongoClient: MongoClient): void;
    }
    diff --git a/docs/Next/types/MongoErrorLabel.html b/docs/Next/types/MongoErrorLabel.html index 7852ae82f3a..4fc395969db 100644 --- a/docs/Next/types/MongoErrorLabel.html +++ b/docs/Next/types/MongoErrorLabel.html @@ -1 +1 @@ -MongoErrorLabel | mongodb

    Type Alias MongoErrorLabel

    MongoErrorLabel: typeof MongoErrorLabel[keyof typeof MongoErrorLabel]
    +MongoErrorLabel | mongodb

    Type Alias MongoErrorLabel

    MongoErrorLabel: typeof MongoErrorLabel[keyof typeof MongoErrorLabel]
    diff --git a/docs/Next/types/OsAdapter.html b/docs/Next/types/OsAdapter.html index 2aa808bd36c..4c55474c228 100644 --- a/docs/Next/types/OsAdapter.html +++ b/docs/Next/types/OsAdapter.html @@ -1,2 +1,2 @@ OsAdapter | mongodb

    Type Alias OsAdapterExperimental

    OsAdapter: Pick<typeof os,
        | "release"
        | "platform"
        | "arch"
        | "type">

    Represents the set of dependencies that the driver uses from the Node.js OS module.

    -
    +
    diff --git a/docs/Next/types/ServerSessionId.html b/docs/Next/types/ServerSessionId.html index 1206542ef5e..21d98c491b6 100644 --- a/docs/Next/types/ServerSessionId.html +++ b/docs/Next/types/ServerSessionId.html @@ -1 +1 @@ -ServerSessionId | mongodb

    Type Alias ServerSessionId

    ServerSessionId: {
        id: Binary;
    }
    +ServerSessionId | mongodb

    Type Alias ServerSessionId

    ServerSessionId: {
        id: Binary;
    }
    diff --git a/docs/Next/types/TextQueryOptions.html b/docs/Next/types/TextQueryOptions.html new file mode 100644 index 00000000000..aa79ac2d85e --- /dev/null +++ b/docs/Next/types/TextQueryOptions.html @@ -0,0 +1,2 @@ +TextQueryOptions | mongodb

    Type Alias TextQueryOptions

    TextQueryOptions: StringQueryOptions

    Use StringQueryOptions instead.

    +
    diff --git a/docs/Next/types/WithSessionCallback.html b/docs/Next/types/WithSessionCallback.html index 326d01f3567..0f2318198df 100644 --- a/docs/Next/types/WithSessionCallback.html +++ b/docs/Next/types/WithSessionCallback.html @@ -1 +1 @@ -WithSessionCallback | mongodb

    Type Alias WithSessionCallback<T>

    WithSessionCallback<T>: ((session: ClientSession) => Promise<T>)

    Type Parameters

    • T = unknown
    +WithSessionCallback | mongodb

    Type Alias WithSessionCallback<T>

    WithSessionCallback<T>: ((session: ClientSession) => Promise<T>)

    Type Parameters

    • T = unknown
    diff --git a/docs/Next/variables/AutoEncryptionLoggerLevel-1.html b/docs/Next/variables/AutoEncryptionLoggerLevel-1.html index 7872b792741..3c9935d28ac 100644 --- a/docs/Next/variables/AutoEncryptionLoggerLevel-1.html +++ b/docs/Next/variables/AutoEncryptionLoggerLevel-1.html @@ -1 +1 @@ -AutoEncryptionLoggerLevel | mongodb

    Variable AutoEncryptionLoggerLevelConst

    AutoEncryptionLoggerLevel: Readonly<{
        Error: 1;
        FatalError: 0;
        Info: 3;
        Trace: 4;
        Warning: 2;
    }> = ...
    +AutoEncryptionLoggerLevel | mongodb

    Variable AutoEncryptionLoggerLevelConst

    AutoEncryptionLoggerLevel: Readonly<{
        Error: 1;
        FatalError: 0;
        Info: 3;
        Trace: 4;
        Warning: 2;
    }> = ...
    diff --git a/docs/Next/variables/BSON.onDemand-1.html b/docs/Next/variables/BSON.onDemand-1.html index c454ca10460..506cd3aa635 100644 --- a/docs/Next/variables/BSON.onDemand-1.html +++ b/docs/Next/variables/BSON.onDemand-1.html @@ -1 +1 @@ -onDemand | mongodb

    Variable onDemandConst Experimental

    onDemand: OnDemand
    +onDemand | mongodb

    Variable onDemandConst Experimental

    onDemand: OnDemand
    diff --git a/docs/Next/variables/MongoErrorLabel-1.html b/docs/Next/variables/MongoErrorLabel-1.html index 11fe4eb7fb3..3a905fa466a 100644 --- a/docs/Next/variables/MongoErrorLabel-1.html +++ b/docs/Next/variables/MongoErrorLabel-1.html @@ -1 +1 @@ -MongoErrorLabel | mongodb

    Variable MongoErrorLabelConst

    MongoErrorLabel: Readonly<{
        HandshakeError: "HandshakeError";
        InterruptInUseConnections: "InterruptInUseConnections";
        NoWritesPerformed: "NoWritesPerformed";
        PoolRequestedRetry: "PoolRequestedRetry";
        ResetPool: "ResetPool";
        ResumableChangeStreamError: "ResumableChangeStreamError";
        RetryableError: "RetryableError";
        RetryableWriteError: "RetryableWriteError";
        SystemOverloadedError: "SystemOverloadedError";
        TransientTransactionError: "TransientTransactionError";
        UnknownTransactionCommitResult: "UnknownTransactionCommitResult";
    }> = ...
    +MongoErrorLabel | mongodb

    Variable MongoErrorLabelConst

    MongoErrorLabel: Readonly<{
        HandshakeError: "HandshakeError";
        InterruptInUseConnections: "InterruptInUseConnections";
        NoWritesPerformed: "NoWritesPerformed";
        PoolRequestedRetry: "PoolRequestedRetry";
        ResetPool: "ResetPool";
        ResumableChangeStreamError: "ResumableChangeStreamError";
        RetryableError: "RetryableError";
        RetryableWriteError: "RetryableWriteError";
        SystemOverloadedError: "SystemOverloadedError";
        TransientTransactionError: "TransientTransactionError";
        UnknownTransactionCommitResult: "UnknownTransactionCommitResult";
    }> = ...