Options
All
  • Public
  • Public/Protected
  • All
Menu

Class MongoClient

The MongoClient class is a class that allows for making Connections to MongoDB.MongoClient类是一个允许连接到MongoDB的类。

remarks

The programmatically provided options take precedence over the URI options.编程提供的选项优先于URI选项。

example
import { MongoClient } from 'mongodb';

// Enable command monitoring for debugging
const client = new MongoClient('mongodb://localhost:27017', { monitorCommands: true });

client.on('commandStarted', started => console.log(started));
client.db().collection('pets');
await client.insertOne({ name: 'spot', kind: 'dog' });

Hierarchy继承层级

Index索引

Constructors构造函数

Properties属性

captureRejectionSymbol: typeof captureRejectionSymbol
captureRejections: boolean

Sets or gets the default captureRejection value for all emitters.设置或获取所有发射器的默认captureRejection值。

defaultMaxListeners: number
errorMonitor: typeof errorMonitor

This symbol shall be used to install a listener for only monitoring 'error' events. 此符号应用于安装仅用于监视'error'事件的侦听器。Listeners installed using this symbol are called before the regular 'error' listeners are called.使用此符号安装的侦听器在调用常规'error'侦听器之前被调用。

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.使用此符号安装侦听器不会在发出'error'事件后改变行为,因此如果没有安装常规的'error'侦听器,进程仍将崩溃。

Accessors访问器

  • get serverApi(): Readonly<undefined | ServerApi>

Methods方法

  • Type parameters类型参数

    • EventKey: "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 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • close(): Promise<void>
  • close(callback: Callback<void>): void
  • close(force: boolean): Promise<void>
  • close(force: boolean, callback: Callback<void>): void
  • Close the db and its underlying connections关闭数据库及其基础连接

    Returns 返回 Promise<void>

  • deprecated

    Callbacks are deprecated and will be removed in the next major version. 回调已被弃用,将在下一个主要版本中删除。See mongodb-legacy for migration assistance请参阅mongodb-legacy获取迁移帮助

    Parameters参数

    Returns 返回 void

  • Parameters参数

    • force: boolean

    Returns 返回 Promise<void>

  • deprecated

    Callbacks are deprecated and will be removed in the next major version. 回调已被弃用,将在下一个主要版本中删除。See mongodb-legacy for migration assistance请参阅mongodb-legacy获取迁移帮助

    Parameters参数

    • force: boolean
    • callback: Callback<void>

    Returns 返回 void

  • Connect to MongoDB using a url使用url连接到MongoDB

    see

    docs.mongodb.org/manual/reference/connection-string/

    Returns 返回 Promise<MongoClient>

  • deprecated

    Callbacks are deprecated and will be removed in the next major version. 回调已被弃用,将在下一个主要版本中删除。See mongodb-legacy for migration assistance请参阅mongodb-legacy获取迁移帮助

    Parameters参数

    Returns 返回 void

  • Create a new Db instance sharing the current socket connections.创建一个共享当前套接字连接的新Db实例。

    Parameters参数

    • Optional dbName: string

      The name of the database we want to use. 我们要使用的数据库的名称。If not provided, use database name from connection string.如果未提供,请使用连接字符串中的数据库名称。

    • Optional options: DbOptions

      Optional settings for Db constructionDb构造的可选设置

    Returns 返回 Db

  • emit<EventKey>(event: symbol | EventKey, ...args: Parameters<MongoClientEvents[EventKey]>): boolean
  • Type parameters类型参数

    • EventKey: "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 返回 boolean

  • eventNames(): string[]
  • getMaxListeners(): number
  • listenerCount<EventKey>(type: string | symbol | EventKey): number
  • Type parameters类型参数

    • EventKey: "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参数

    • type: string | symbol | EventKey

    Returns 返回 number

  • listeners<EventKey>(event: string | symbol | EventKey): MongoClientEvents[EventKey][]
  • Type parameters类型参数

    • EventKey: "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参数

    • event: string | symbol | EventKey

    Returns 返回 MongoClientEvents[EventKey][]

  • Type parameters类型参数

    • EventKey: "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 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Type parameters类型参数

    • EventKey: "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 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Type parameters类型参数

    • EventKey: "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 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • rawListeners<EventKey>(event: string | symbol | EventKey): MongoClientEvents[EventKey][]
  • Type parameters类型参数

    • EventKey: "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参数

    • event: string | symbol | EventKey

    Returns 返回 MongoClientEvents[EventKey][]

  • removeAllListeners<EventKey>(event?: string | symbol | EventKey): MongoClient
  • Type parameters类型参数

    • EventKey: "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参数

    • Optional event: string | symbol | EventKey

    Returns 返回 MongoClient

  • Type parameters类型参数

    • EventKey: "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 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Parameters参数

    Returns 返回 MongoClient

  • Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this cluster. 创建一个新的更改流,监视此集群中的新更改(插入、更新、替换、删除和无效)。Will ignore all changes to system collections, as well as the local, admin, and config databases.将忽略对系统集合以及本地、管理和配置数据库的所有更改。

    remarks

    watch() accepts two generic arguments for distinct use cases:watch()接受不同用例的两个通用参数:

    • The first is to provide the schema that may be defined for all the data within the current cluster第一个是提供可以为当前集群中的所有数据定义的模式
    • The second is to override the shape of the change stream document entirely, if it is not provided the type will default to ChangeStreamDocument of the first argument第二种方法是完全覆盖变更流文档的形状,如果没有提供,类型将默认为第一个参数的ChangeStreamDocument

    Type parameters类型参数

    • TSchema: Document = Document

      Type of the data being detected by the change stream更改流检测到的数据类型

    • TChange: Document = ChangeStreamDocument<TSchema>

      Type of the whole change stream document emitted发出的整个变更流文档的类型

    Parameters参数

    • pipeline: Document[] = []

      An array of aggregation pipeline stages through which to pass change stream documents. 一组聚合管道阶段,用于传递更改流文档。This allows for filtering (using $match) and manipulating the change stream documents.这允许筛选(使用$match)和操作变更流文档。

    • options: ChangeStreamOptions = {}

      Optional settings for the command命令的可选设置

    Returns 返回 ChangeStream<TSchema, TChange>

  • Runs a given operation with an implicitly created session. 使用隐式创建的会话运行给定操作。The lifetime of the session will be handled without the need for user interaction.会话的生存期将在不需要用户交互的情况下处理。

    NOTE: presently the operation MUST return a Promise (either explicit or implicitly as an async function)注意:当前操作必须返回Promise(作为异步函数显式或隐式)

    Parameters参数

    • callback: WithSessionCallback

      An callback to execute with an implicitly created session使用隐式创建的会话执行的回调

    Returns 返回 Promise<void>

  • Parameters参数

    Returns 返回 Promise<void>

  • getEventListeners(emitter: EventEmitter | _DOMEventTarget, name: string | symbol): Function[]
  • Returns a copy of the array of listeners for the event named eventName.返回名为eventName的事件的侦听器数组的副本。

    For EventEmitters this behaves exactly the same as calling .listeners on the emitter.对于EventEmitter,这与调用emitter上的.listeners完全相同。

    For EventTargets this is the only way to get the event listeners for the event target. 对于EventTarget,这是获取事件目标的事件侦听器的唯一方法。This is useful for debugging and diagnostic purposes.这对于调试和诊断非常有用。

    const { getEventListeners, EventEmitter } = require('events');

    {
    const ee = new EventEmitter();
    const listener = () => console.log('Events are fun');
    ee.on('foo', listener);
    getEventListeners(ee, 'foo'); // [listener]
    }
    {
    const et = new EventTarget();
    const listener = () => console.log('Events are fun');
    et.addEventListener('foo', listener);
    getEventListeners(et, 'foo'); // [listener]
    }
    since

    v15.2.0, v14.17.0

    Parameters参数

    • emitter: EventEmitter | _DOMEventTarget
    • name: string | symbol

    Returns 返回 Function[]

  • listenerCount(emitter: EventEmitter, eventName: string | symbol): number
  • A class method that returns the number of listeners for the given eventNameregistered on the given emitter.返回在给定emitter上注册的给定eventName的侦听器数量的类方法。

    const { EventEmitter, listenerCount } = require('events');
    const myEmitter = new EventEmitter();
    myEmitter.on('event', () => {});
    myEmitter.on('event', () => {});
    console.log(listenerCount(myEmitter, 'event'));
    // Prints: 2
    since

    v0.9.12

    deprecated

    Since v3.2.0 - Use listenerCount instead.

    Parameters参数

    • emitter: EventEmitter

      The emitter to query要查询的发射器

    • eventName: string | symbol

      The event name事件名称

    Returns 返回 number

  • on(emitter: EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
  • ```js const { on, EventEmitter } = require('events');

    (async () => { const ee = new EventEmitter();

    // Emit later on process.nextTick(() => { ee.emit('foo', 'bar'); ee.emit('foo', 42); });

    for await (const event of on(ee, 'foo')) { // The execution of this inner block is synchronous and it // processes one event at a time (even with await). Do not use // if concurrent execution is required. console.log(event); // prints ['bar'] [42] } // Unreachable here })();


    Returns an `AsyncIterator` that iterates `eventName` events. It will throw
    if the `EventEmitter` emits `'error'`. It removes all listeners when
    exiting the loop. The `value` returned by each iteration is an array
    composed of the emitted event arguments.

    An `AbortSignal` can be used to cancel waiting on events:

    ```js
    const { on, EventEmitter } = require('events');
    const ac = new AbortController();

    (async () => {
    const ee = new EventEmitter();

    // Emit later on
    process.nextTick(() => {
    ee.emit('foo', 'bar');
    ee.emit('foo', 42);
    });

    for await (const event of on(ee, 'foo', { signal: ac.signal })) {
    // The execution of this inner block is synchronous and it
    // processes one event at a time (even with await). Do not use
    // if concurrent execution is required.
    console.log(event); // prints ['bar'] [42]
    }
    // Unreachable here
    })();

    process.nextTick(() => ac.abort());
    since

    v13.6.0, v12.16.0

    Parameters参数

    • emitter: EventEmitter
    • eventName: string

      The name of the event being listened for正在侦听的事件的名称

    • Optional options: StaticEventEmitterOptions

    Returns 返回 AsyncIterableIterator<any>

    that iterates eventName events emitted by the emitter

  • once(emitter: _NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
  • once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
  • Creates a Promise that is fulfilled when the EventEmitter emits the given event or that is rejected if the EventEmitter emits 'error' while waiting. The Promise will resolve with an array of all the arguments emitted to the given event.

    This method is intentionally generic and works with the web platform EventTarget interface, which has no special'error' event semantics and does not listen to the 'error' event.

    const { once, EventEmitter } = require('events');

    async function run() {
    const ee = new EventEmitter();

    process.nextTick(() => {
    ee.emit('myevent', 42);
    });

    const [value] = await once(ee, 'myevent');
    console.log(value);

    const err = new Error('kaboom');
    process.nextTick(() => {
    ee.emit('error', err);
    });

    try {
    await once(ee, 'myevent');
    } catch (err) {
    console.log('error happened', err);
    }
    }

    run();

    The special handling of the 'error' event is only used when events.once()is used to wait for another event. If events.once() is used to wait for the 'error' event itself, then it is treated as any other kind of event without special handling:

    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();

    once(ee, 'error')
    .then(([err]) => console.log('ok', err.message))
    .catch((err) => console.log('error', err.message));

    ee.emit('error', new Error('boom'));

    // Prints: ok boom

    An AbortSignal can be used to cancel waiting for the event:

    const { EventEmitter, once } = require('events');

    const ee = new EventEmitter();
    const ac = new AbortController();

    async function foo(emitter, event, signal) {
    try {
    await once(emitter, event, { signal });
    console.log('event emitted!');
    } catch (error) {
    if (error.name === 'AbortError') {
    console.error('Waiting for the event was canceled!');
    } else {
    console.error('There was an error', error.message);
    }
    }
    }

    foo(ee, 'foo', ac.signal);
    ac.abort(); // Abort waiting for the event
    ee.emit('foo'); // Prints: Waiting for the event was canceled!
    since

    v11.13.0, v10.16.0

    Parameters参数

    • emitter: _NodeEventTarget
    • eventName: string | symbol
    • Optional options: StaticEventEmitterOptions

    Returns 返回 Promise<any[]>

  • Parameters参数

    • emitter: _DOMEventTarget
    • eventName: string
    • Optional options: StaticEventEmitterOptions

    Returns 返回 Promise<any[]>

  • setMaxListeners(n?: number, ...eventTargets: (EventEmitter | _DOMEventTarget)[]): void
  • ```js const { setMaxListeners, EventEmitter } = require('events');

    const target = new EventTarget(); const emitter = new EventEmitter();

    setMaxListeners(5, target, emitter); ```

    since

    v15.4.0

    Parameters参数

    • Optional n: number

      A non-negative number. 非负数。The maximum number of listeners per EventTarget event.每个EventTarget事件的最大侦听器数。

    • Rest ...eventTargets: (EventEmitter | _DOMEventTarget)[]

    Returns 返回 void

Generated using TypeDoc