listCollections Node.js Driver

I try to list all Collections like this in Node.js

  const db = client.db(dbName);
  const collections = await db.listCollections();
  console.log(collections );

But all I get back is this weird output instead of an Array

Collection {
  s: {
    db: Db { s: [Object] },
    options: {
      raw: false,
      promoteLongs: true,
      promoteValues: true,
      promoteBuffers: false,
      ignoreUndefined: false,
      bsonRegExp: false,
      serializeFunctions: false,
      fieldsAsRaw: {},
      enableUtf8Validation: true,
      readPreference: [ReadPreference]
    },
    namespace: MongoDBNamespace { db: 'apphead', collection: 'todos' },
    pkFactory: { createPk: [Function: createPk] },
    readPreference: ReadPreference {
      mode: 'primary',
      tags: undefined,
      hedge: undefined,
      maxStalenessSeconds: undefined,
      minWireVersion: undefined
    },
    bsonOptions: {
      raw: false,
      promoteLongs: true,
      promoteValues: true,
      promoteBuffers: false,
      ignoreUndefined: false,
      bsonRegExp: false,
      serializeFunctions: false,
      fieldsAsRaw: {},
      enableUtf8Validation: true
    },
    readConcern: undefined,
    writeConcern: undefined
  }
}

<ref *2> ListCollectionsCursor {
  _events: [Object: null prototype] {},
  _eventsCount: 0,
  _maxListeners: undefined,
  parent: Db {
    s: {
      client: [MongoClient],
      options: [Object],
      logger: [Logger],
      readPreference: [ReadPreference],
      bsonOptions: [Object],
      pkFactory: [Object],
      readConcern: undefined,
      writeConcern: undefined,
      namespace: [MongoDBNamespace]
    }
  },
  filter: {},
  options: {
    raw: false,
    promoteLongs: true,
    promoteValues: true,
    promoteBuffers: false,
    ignoreUndefined: false,
    bsonRegExp: false,
    serializeFunctions: false,
    fieldsAsRaw: {},
    enableUtf8Validation: true,
    readPreference: ReadPreference {
      mode: 'primary',
      tags: undefined,
      hedge: undefined,
      maxStalenessSeconds: undefined,
      minWireVersion: undefined
    }
  },
  [Symbol(kCapture)]: false,
  [Symbol(client)]: <ref *1> MongoClient {
    _events: [Object: null prototype] {},
    _eventsCount: 0,
    _maxListeners: undefined,
    s: {
      url: 'mongodb://localhost:27017',
      bsonOptions: [Object],
      namespace: [MongoDBNamespace],
      hasBeenClosed: false,
      sessionPool: [ServerSessionPool],
      activeSessions: [Set],
      options: [Getter],
      readConcern: [Getter],
      writeConcern: [Getter],
      readPreference: [Getter],
      logger: [Getter],
      isMongoClient: [Getter]
    },
    topology: Topology {
      _events: [Object: null prototype],
      _eventsCount: 26,
      _maxListeners: undefined,
      bson: [Object: null prototype],
      s: [Object],
      client: [Circular *1],
      [Symbol(kCapture)]: false,
      [Symbol(waitQueue)]: [Denque]
    },
    [Symbol(kCapture)]: false,
    [Symbol(options)]: [Object: null prototype] {
      hosts: [Array],
      compressors: [Array],
      connectTimeoutMS: 30000,
      directConnection: false,
      metadata: [Object],
      enableUtf8Validation: true,
      forceServerObjectId: false,
      heartbeatFrequencyMS: 10000,
      keepAlive: true,
      keepAliveInitialDelay: 120000,
      loadBalanced: false,
      localThresholdMS: 15,
      logger: [Logger],
      maxConnecting: 2,
      maxIdleTimeMS: 0,
      maxPoolSize: 100,
      minPoolSize: 0,
      minHeartbeatFrequencyMS: 500,
      monitorCommands: false,
      noDelay: true,
      pkFactory: [Object],
      raw: false,
      readPreference: [ReadPreference],
      retryReads: true,
      retryWrites: true,
      serverSelectionTimeoutMS: 7500,
      socketTimeoutMS: 0,
      srvMaxHosts: 0,
      srvServiceName: 'mongodb',
      waitQueueTimeoutMS: 0,
      zlibCompressionLevel: 0,
      dbName: 'test',
      userSpecifiedAuthSource: false,
      userSpecifiedReplicaSet: false
    }
  },
  [Symbol(namespace)]: MongoDBNamespace { db: 'apphead', collection: undefined },
  [Symbol(documents)]: [],
  [Symbol(initialized)]: false,
  [Symbol(closed)]: false,
  [Symbol(killed)]: false,
  [Symbol(options)]: {
    readPreference: ReadPreference {
      mode: 'primary',
      tags: undefined,
      hedge: undefined,
      maxStalenessSeconds: undefined,
      minWireVersion: undefined
    },
    fieldsAsRaw: {},
    promoteValues: true,
    promoteBuffers: false,
    promoteLongs: true,
    serializeFunctions: false,
    ignoreUndefined: false,
    bsonRegExp: false,
    raw: false,
    enableUtf8Validation: true
  },
  [Symbol(session)]: ClientSession {
    _events: [Object: null prototype] { ended: [Function] },
    _eventsCount: 1,
    _maxListeners: undefined,
    client: <ref *1> MongoClient {
      _events: [Object: null prototype] {},
      _eventsCount: 0,
      _maxListeners: undefined,
      s: [Object],
      topology: [Topology],
      [Symbol(kCapture)]: false,
      [Symbol(options)]: [Object: null prototype]
    },
    sessionPool: ServerSessionPool { client: [MongoClient], sessions: [] },
    hasEnded: false,
    clientOptions: [Object: null prototype] {
      hosts: [Array],
      compressors: [Array],
      connectTimeoutMS: 30000,
      directConnection: false,
      metadata: [Object],
      enableUtf8Validation: true,
      forceServerObjectId: false,
      heartbeatFrequencyMS: 10000,
      keepAlive: true,
      keepAliveInitialDelay: 120000,
      loadBalanced: false,
      localThresholdMS: 15,
      logger: [Logger],
      maxConnecting: 2,
      maxIdleTimeMS: 0,
      maxPoolSize: 100,
      minPoolSize: 0,
      minHeartbeatFrequencyMS: 500,
      monitorCommands: false,
      noDelay: true,
      pkFactory: [Object],
      raw: false,
      readPreference: [ReadPreference],
      retryReads: true,
      retryWrites: true,
      serverSelectionTimeoutMS: 7500,
      socketTimeoutMS: 0,
      srvMaxHosts: 0,
      srvServiceName: 'mongodb',
      waitQueueTimeoutMS: 0,
      zlibCompressionLevel: 0,
      dbName: 'test',
      userSpecifiedAuthSource: false,
      userSpecifiedReplicaSet: false
    },
    explicit: false,
    supports: { causalConsistency: true },
    clusterTime: undefined,
    operationTime: undefined,
    owner: [Circular *2],
    defaultTransactionOptions: {},
    transaction: Transaction {
      state: 'NO_TRANSACTION',
      options: {},
      _pinnedServer: undefined,
      _recoveryToken: undefined
    },
    [Symbol(kCapture)]: false,
    [Symbol(snapshotEnabled)]: false,
    [Symbol(serverSession)]: null,
    [Symbol(txnNumberIncrement)]: 0
  }
}

Am I doing something wrong?

From my best friend the documentation, I understand that listCollections() return a cursor. As with other cursors you might need to call toArray().