Type Alias RunCursorCommandOptions

RunCursorCommandOptions: {
    awaitData?: boolean;
    readPreference?: ReadPreferenceLike;
    session?: ClientSession;
    tailable?: boolean;
    timeoutMode?: CursorTimeoutMode;
    timeoutMS?: number;
} & BSONSerializeOptions

Type declaration

  • OptionalawaitData?: boolean
  • OptionalreadPreference?: ReadPreferenceLike
  • Optionalsession?: ClientSession
  • Optionaltailable?: boolean
  • Optional ExperimentaltimeoutMode?: CursorTimeoutMode

    Specifies how timeoutMS is applied to the cursor. 指定如何将timeoutMS应用于游标。Can be either 'cursorLifeTime' or 'iteration' When set to 'iteration', the deadline specified by timeoutMS applies to each call of cursor.next(). 可以是'cursorLifeTime''iteration'。当设置为'iteration'时,timeoutMS指定的截止日期适用于每次调用cursor.next()When set to 'cursorLifetime', the deadline applies to the life of the entire cursor.当设置为'cursorLifetime'时,截止日期适用于整个游标的生命周期。

    Depending on the type of cursor being used, this option has different default values. 根据所使用的游标类型,此选项具有不同的默认值。For non-tailable cursors, this value defaults to 'cursorLifetime' For tailable cursors, this value defaults to 'iteration' since tailable cursors, by definition can have an arbitrarily long lifetime.对于不可尾随的游标,此值默认为'cursorLifetime'。对于可尾随游标,此值默认为'iteration',因为根据定义,可尾随游标可以具有任意长的生存期。

    const cursor = collection.find({}, {timeoutMS: 100, timeoutMode: 'iteration'});
    for await (const doc of cursor) {
    // process doc
    // This will throw a timeout error if any of the iterator's `next()` calls takes more than 100ms, but
    // will continue to iterate successfully otherwise, regardless of the number of batches.
    }
    const cursor = collection.find({}, { timeoutMS: 1000, timeoutMode: 'cursorLifetime' });
    const docs = await cursor.toArray(); // This entire line will throw a timeout error if all batches are not fetched and returned within 1000ms.
  • Optional ExperimentaltimeoutMS?: number

    Specifies the time an operation will run until it throws a timeout error. 指定操作运行到抛出超时错误的时间。Note that if maxTimeMS is provided in the command in addition to setting timeoutMS in the options, then the original value of maxTimeMS will be overwritten.请注意,如果命令中除了在选项中设置timeoutMS外还提供了maxTimeMS,则maxTimeMS的原始值将被覆盖。