import { EventEmitter, Readable, Writable } from "../../platform/PlatformTools"; /** * Creates a new MongoClient instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/MongoClient.html */ export declare class MongoClient extends EventEmitter { constructor(uri: string, options?: MongoClientOptions); /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param callback The command result callback. */ static connect(url: string, callback: MongoCallback): void; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param options Optional settings. */ static connect(url: string, options?: MongoClientOptions): Promise; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param options Optional settings. * @param callback The command result callback. */ static connect(url: string, options: MongoClientOptions, callback: MongoCallback): void; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. */ connect(): Promise; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param callback The command result callback. */ connect(url: string, callback: MongoCallback): void; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param options Optional settings. */ connect(url: string, options?: MongoClientOptions): Promise; /** * Connect to MongoDB using a url as documented at docs.mongodb.org/manual/reference/connection-string/ * Note that for replicasets the replicaSet query parameter is required in the 2.0 driver. * * @param url The connection URI string. * @param options Optional settings. * @param callback The command result callback. */ connect(url: string, options: MongoClientOptions, callback: MongoCallback): void; /** * Close the db and its underlying connections. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#close */ close(callback: MongoCallback): void; /** * Close the db and its underlying connections. * @param force Force close, emitting no events. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#close */ close(force?: boolean): Promise; /** * Close the db and its underlying connections. * @param force Force close, emitting no events. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#close */ close(force: boolean, callback: MongoCallback): void; /** * Create a new Db instance sharing the current socket connections. Be aware that the new db instances are * related in a parent-child relationship to the original instance so that events are correctly emitted on child * db instances. Child db instances are cached so performing db('db1') twice will return the same instance. * You can control these behaviors with the options noListener and returnNonCachedInstance. * @param dbName The name of the database we want to use. If not provided, use database name from connection string. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#db */ db(dbName?: string, options?: MongoClientCommonOption): Db; /** * Check if MongoClient is connected. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#isConnected */ isConnected(options?: MongoClientCommonOption): boolean; /** * Logout user from server, fire off on all connections and remove all auth info. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#logout */ logout(callback: MongoCallback): void; logout(options?: { dbName?: string; }): Promise; logout(options: { dbName?: string; }, callback: MongoCallback): void; /** * Starts a new session on the server. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#startSession */ startSession(options?: SessionOptions): ClientSession; /** * 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. * @param pipeline 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. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#watch */ watch(pipeline?: Object[], options?: ChangeStreamOptions & { startAtClusterTime?: Timestamp; session?: ClientSession; }): ChangeStream; /** * Runs a given operation with an implicitly created session. The lifetime of the session will be handled without the need for user interaction. * @param operation An operation to execute with an implicitly created session. The signature of this MUST be `(session) => {}` * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#withSession */ withSession(operation: (session: ClientSession) => Promise): Promise; /** * Runs a given operation with an implicitly created session. The lifetime of the session will be handled without the need for user interaction. * @param options Optional settings to be appled to implicitly created session. * @param operation An operation to execute with an implicitly created session. The signature of this MUST be `(session) => {}` * @see http://mongodb.github.io/node-mongodb-native/3.1/api/MongoClient.html#withSession */ withSession(options: SessionOptions, operation: (session: ClientSession) => Promise): Promise; } /** * The callback format for results. */ export interface MongoCallback { /** * @param error An error instance representing the error during the execution. * @param result The result of execution. */ (error: MongoError, result: T): void; } export declare class MongoError extends Error { constructor(message: string); static create(options: Object): MongoError; } /** * Options for MongoClient#connect method. * * @see http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#.connect */ export interface MongoClientOptions { /** * The maximum size of the individual server pool. */ poolSize?: number; /** * Enable SSL connection. */ ssl?: boolean; /** * SSL Certificate store binary buffer. */ sslCA?: Buffer; /** * Uri decode the user name and password for authentication. */ uri_decode_auth?: boolean; /** * A hash of options to set on the db object, see Db constructor. */ db?: DbCreateOptions; /** * A hash of options to set on the server objects, see Server constructor**. */ server?: ServerOptions; /** * A hash of options to set on the replSet object, see ReplSet constructor**. */ replSet?: ReplSetOptions; /** * A hash of options to set on the mongos object, see Mongos constructor**. */ mongos?: MongosOptions; /** * A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible. */ promiseLibrary?: Object; } export interface CommandOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Number of milliseconds to wait before aborting the query. */ maxTimeMS?: number; } /** * Options for Db class. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html */ export interface DbCreateOptions { /** * If the database authentication is dependent on another databaseName. */ authSource?: string; /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * The current value of the parameter native_parser. */ native_parser?: boolean; /** * Force server to assign _id values instead of driver. */ forceServerObjectId?: boolean; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Specify if the BSON serializer should ignore undefined fields. */ ignoreUndefined?: boolean; /** * Return document results as raw BSON buffers. */ raw?: boolean; /** * Promotes Long values to number if they fit inside the 53 bits resolution. */ promoteLongs?: boolean; /** * Sets a cap on how many operations the driver will buffer up before giving up on getting a working connection, default is -1 which is unlimited. */ bufferMaxEntries?: number; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * A primary key factory object for generation of custom _id keys. */ pkFactory?: Object; /** * A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible. */ promiseLibrary?: Object; /** * Specify a read concern for the collection. (only MongoDB 3.2 or higher supported). */ readConcern?: ReadConcern; } /** * Creates a new ReadPreference instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/ReadPreference.html */ export declare class ReadPreference { constructor(mode: string, tags: Object); /** * The ReadPreference mode as listed above. */ mode: string; /** * An object representing read preference tags. */ tags: any; /** * Read from primary only. All operations produce an error (throw an exception where applicable) if primary is unavailable. Cannot be combined with tags (This is the default.). */ static PRIMARY: string; /** * Read from primary if available, otherwise a secondary. */ static PRIMARY_PREFERRED: string; /** * Read from secondary if available, otherwise error. */ static SECONDARY: string; /** * Read from a secondary if available, otherwise read from the primary. */ static SECONDARY_PREFERRED: string; /** * All modes read from among the nearest candidates, but unlike other modes, NEAREST will include both the primary and all secondaries in the random selection. */ static NEAREST: string; /** * Validate if a mode is legal. */ isValid(mode: string): boolean; /** * Validate if a mode is legal. */ static isValid(mode: string): boolean; } /** * Creates a new Server instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Server.html */ export interface SocketOptions { /** * Reconnect on error. */ autoReconnect?: boolean; /** * TCP Socket NoDelay option. */ noDelay?: boolean; /** * TCP KeepAlive on the socket with a X ms delay before start. */ keepAlive?: number; /** * TCP Connection timeout setting. */ connectTimeoutMS?: number; /** * TCP Socket timeout setting. */ socketTimeoutMS?: number; } /** * Creates a new Server instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Server.html */ export interface ServerOptions { /** * Number of connections in the connection pool for each server instance, set to 5 as default for legacy reasons. */ poolSize?: number; /** * Use ssl connection (needs to have a mongod server with ssl support). */ ssl?: boolean; /** * Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher). */ sslValidate?: Object; /** * Ensure we check server identify during SSL, set to false to disable checking. Only works for Node 0.12.x or higher. You can pass in a boolean or your own checkServerIdentity override function. */ checkServerIdentity?: boolean | Function; /** * Array of valid certificates either as Buffers or Strings (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCA?: Array; /** * String or buffer containing the certificate we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCert?: Buffer | string; /** * String or buffer containing the certificate private key we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslKey?: Buffer | string; /** * String or buffer containing the certificate password (needs to have a mongod server with ssl support, 2.4 or higher). */ sslPass?: Buffer | string; /** * Socket options. */ socketOptions?: SocketOptions; /** * Server attempt to reconnect #times. */ reconnectTries?: number; /** * Server will wait # milliseconds between retries. */ reconnectInterval?: number; } /** * Creates a new ReplSet instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/ReplSet.html */ export interface ReplSetOptions { /** * Turn on high availability monitoring. */ ha?: boolean; /** * Time between each replicaset status check. */ haInterval?: number; /** * The name of the replicaset to connect to. */ replicaSet?: string; /** * Sets the range of servers to pick when using NEAREST (lowest ping ms + the latency fence, ex: range of 1 to (1 + 15) ms). */ secondaryAcceptableLatencyMS?: number; /** * Sets if the driver should connect even if no primary is available. */ connectWithNoPrimary?: boolean; /** * Number of connections in the connection pool for each server instance, set to 5 as default for legacy reasons. */ poolSize?: number; /** * Use ssl connection (needs to have a mongod server with ssl support). */ ssl?: boolean; /** * Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher). */ sslValidate?: Object; /** * Ensure we check server identify during SSL, set to false to disable checking. Only works for Node 0.12.x or higher. You can pass in a boolean or your own checkServerIdentity override function. */ checkServerIdentity?: boolean | Function; /** * Array of valid certificates either as Buffers or Strings (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCA?: Array; /** * String or buffer containing the certificate we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCert?: Buffer | string; /** * String or buffer containing the certificate private key we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslKey?: Buffer | string; /** * String or buffer containing the certificate private key we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslPass?: Buffer | string; /** * Socket options. */ socketOptions?: SocketOptions; } /** * Creates a new Mongos instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Mongos.html */ export interface MongosOptions { /** * Turn on high availability monitoring. */ ha?: boolean; /** * Time between each replicaset status check. */ haInterval?: number; /** * Number of connections in the connection pool for each server instance, set to 5 as default for legacy reasons. */ poolSize?: number; /** * Use ssl connection (needs to have a mongod server with ssl support). */ ssl?: boolean; /** * Validate mongod server certificate against ca (needs to have a mongod server with ssl support, 2.4 or higher). */ sslValidate?: Object; /** * Ensure we check server identify during SSL, set to false to disable checking. Only works for Node 0.12.x or higher. You can pass in a boolean or your own checkServerIdentity override function. */ checkServerIdentity?: boolean | Function; /** * Array of valid certificates either as Buffers or Strings (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCA?: Array; /** * String or buffer containing the certificate we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslCert?: Buffer | string; /** * String or buffer containing the certificate private key we wish to present (needs to have a mongod server with ssl support, 2.4 or higher). */ sslKey?: Buffer | string; /** * String or buffer containing the certificate password (needs to have a mongod server with ssl support, 2.4 or higher). */ sslPass?: Buffer | string; /** * Socket options. */ socketOptions?: SocketOptions; } export interface DbOptions { /** * Do not make the db an event listener to the original connection. */ noListener?: boolean; /** * Control if you want to return a cached instance or have a new one created. */ returnNonCachedInstance?: boolean; } export interface IndexInformationOptions { /** * Returns the full raw index information. */ full?: boolean; /** * The preferred read preference (ReadPreference.PRIMARY, * ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, * ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } export interface ExecuteDbAdminCommandOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } export interface ListCollectionsOptions { /** * The batchSize for the returned command cursor or if pre 2.8 the systems batch collection. */ batchSize?: number; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } /** * Db. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html */ export declare class Db extends EventEmitter { /** * * @param databaseName The name of the database this instance represents. * @param serverConfig The server topology for the database. * @param options Optional. */ constructor(databaseName: string, serverConfig: Server | ReplSet | Mongos, options?: DbCreateOptions); /** * Get the current db topology. */ serverConfig: Server | ReplSet | Mongos; /** * Current bufferMaxEntries value for the database. */ bufferMaxEntries: number; /** * The name of the database this instance represents. */ databaseName: string; /** * The options associated with the db instance. */ options: any; /** * The current value of the parameter native_parser. */ native_parser: boolean; /** * The current slaveOk value for the db instance. */ slaveOk: boolean; /** * The current write concern values. */ writeConcern: WriteConcern; /** * Add a user to the database. * * @param username The username. * @param password The password. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#addUser */ addUser(username: string, password: string, callback: MongoCallback): void; /** * Add a user to the database. * * @param username The username. * @param password The password. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#addUser */ addUser(username: string, password: string, options?: DbAddUserOptions): Promise; /** * Add a user to the database. * * @param username The username. * @param password The password. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#addUser */ addUser(username: string, password: string, options: DbAddUserOptions, callback: MongoCallback): void; /** * Return the Admin db instance. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#admin */ admin(): Admin; /** * Authenticate a user against the server. * * @param userName The username. * @param password The password. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#authenticate */ authenticate(userName: string, password: string, callback: MongoCallback): void; /** * Authenticate a user against the server. * * @param userName The username. * @param password The password. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#authenticate */ authenticate(userName: string, password: string, options?: { authMechanism: string; }): Promise; /** * Authenticate a user against the server. * * @param userName The username. * @param password The password. * @param password * @param options * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#authenticate */ authenticate(userName: string, password: string, options: { authMechanism: string; }, callback: MongoCallback): void; /** * Close the db and its underlying connections. * * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#close */ close(callback: MongoCallback): void; /** * Close the db and its underlying connections. * * @param forceClose Force close, emitting no events. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#close */ close(forceClose?: boolean): Promise; /** * Close the db and its underlying connections. * * @param forceClose Force close, emitting no events. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#close */ close(forceClose: boolean, callback: MongoCallback): void; /** * Fetch a specific collection (containing the actual collection information). If the application does not use strict mode you can * can use it without a callback in the following way: var collection = db.collection('mycollection'); * * @param name The collection name we wish to access. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collection */ collection(name: string): Collection; /** * Fetch a specific collection (containing the actual collection information). If the application does not use strict mode you can * can use it without a callback in the following way: var collection = db.collection('mycollection'); * * @param name The collection name we wish to access. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collection */ collection(name: string, callback: MongoCallback>): Collection; /** * Fetch a specific collection (containing the actual collection information). If the application does not use strict mode you can * can use it without a callback in the following way: var collection = db.collection('mycollection'); * * @param name The collection name we wish to access. * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collection */ collection(name: string, options: DbCollectionOptions, callback: MongoCallback>): Collection; /** * Fetch all collections for the current db. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collections */ collections(): Promise[]>; /** * Fetch all collections for the current db. * * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collections */ collections(callback: MongoCallback[]>): void; /** * Execute a command. * * @param command The command hash. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#command */ command(command: Object, callback: MongoCallback): void; /** * Execute a command. * * @param command The command hash. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#command */ command(command: Object, options?: { readPreference: ReadPreference | string; }): Promise; /** * Execute a command. * * @param command The command hash. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#command */ command(command: Object, options: { readPreference: ReadPreference | string; }, callback: MongoCallback): void; /** * Create a new collection on a server with the specified options. Use this to create capped collections. * * @param name The collection name we wish to access. * @param callback The results callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createCollection */ createCollection(name: string, callback: MongoCallback>): void; /** * Create a new collection on a server with the specified options. Use this to create capped collections. * * @param name The collection name we wish to access. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createCollection */ createCollection(name: string, options?: CollectionCreateOptions): Promise>; /** * Create a new collection on a server with the specified options. Use this to create capped collections. * * @param name The collection name we wish to access. * @param options Optional settings. * @param callback The results callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createCollection */ createCollection(name: string, options: CollectionCreateOptions, callback: MongoCallback>): void; /** * Creates an index on the db and collection collection. * * @param name Name of the collection to create the index on. * @param fieldOrSpec Defines the index. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createIndex */ createIndex(name: string, fieldOrSpec: string | Object, callback: MongoCallback): void; /** * Creates an index on the db and collection collection. * * @param name Name of the collection to create the index on. * @param fieldOrSpec Defines the index. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createIndex */ createIndex(name: string, fieldOrSpec: string | Object, options?: MongodbIndexOptions): Promise; /** * Creates an index on the db and collection collection. * * @param name Name of the collection to create the index on. * @param fieldOrSpec Defines the index. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createIndex */ createIndex(name: string, fieldOrSpec: string | Object, options: MongodbIndexOptions, callback: MongoCallback): void; /** * Create a new Db instance sharing the current socket connections. Be aware that the new db instances are * related in a parent-child relationship to the original instance so that events are correctly emitted on child * db instances. Child db instances are cached so performing db('db1') twice will return the same instance. * You can control these behaviors with the options noListener and returnNonCachedInstance. * * @param dbName The name of the database we want to use. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#db */ db(dbName: string): Db; /** * Create a new Db instance sharing the current socket connections. Be aware that the new db instances are * related in a parent-child relationship to the original instance so that events are correctly emitted on child * db instances. Child db instances are cached so performing db('db1') twice will return the same instance. * You can control these behaviors with the options noListener and returnNonCachedInstance. * * @param dbName The name of the database we want to use. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#db */ db(dbName: string, options: DbOptions): Db; /** * Drop a collection from the database, removing it permanently. New accesses will create a new collection. * * @param name Name of collection to drop. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#dropCollection */ dropCollection(name: string): Promise; /** * Drop a collection from the database, removing it permanently. New accesses will create a new collection. * * @param name Name of collection to drop. * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#dropCollection */ dropCollection(name: string, callback: MongoCallback): void; /** * Drop a database, removing it permanently from the server. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#dropDatabase */ dropDatabase(): Promise; /** * Drop a database, removing it permanently from the server. * * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#dropDatabase */ dropDatabase(callback: MongoCallback): void; /** * Runs a command on the database as admin. * * @param command The command hash. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#executeDbAdminCommand */ executeDbAdminCommand(command: Object, callback: MongoCallback): void; /** * Runs a command on the database as admin. * * @param command The command hash. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#executeDbAdminCommand */ executeDbAdminCommand(command: Object, options?: ExecuteDbAdminCommandOptions): Promise; /** * Runs a command on the database as admin. * * @param command The command hash. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#executeDbAdminCommand */ executeDbAdminCommand(command: Object, options: ExecuteDbAdminCommandOptions, callback: MongoCallback): void; /** * Retrieves this collections index info. * * @param name The name of the collection. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#indexInformation */ indexInformation(name: string, callback: MongoCallback): void; /** * Retrieves this collections index info. * * @param name The name of the collection. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#indexInformation */ indexInformation(name: string, options?: IndexInformationOptions): Promise; /** * Retrieves this collections index info. * * @param name The name of the collection. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#indexInformation */ indexInformation(name: string, options: IndexInformationOptions, callback: MongoCallback): void; /** * Get the list of all collection information for the specified db. * * @param filter Query to filter collections by. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#listCollections */ listCollections(filter: Object, options?: ListCollectionsOptions): CommandCursor; /** * Logout user from server, fire off on all connections and remove all auth info. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#logout */ logout(callback: MongoCallback): void; /** * Logout user from server, fire off on all connections and remove all auth info. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#logout */ logout(options?: { dbName?: string; }): Promise; /** * Logout user from server, fire off on all connections and remove all auth info. * * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#logout */ logout(options: { dbName?: string; }, callback: MongoCallback): void; /** * Open the database. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#open */ open(): Promise; /** * Open the database * * @param callback Callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#open */ open(callback: MongoCallback): void; /** * * @param username * @param callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#removeUser */ removeUser(username: string, callback: MongoCallback): void; removeUser(username: string, options?: { w?: number | string; wtimeout?: number; j?: boolean; }): Promise; removeUser(username: string, options: { w?: number | string; wtimeout?: number; j?: boolean; }, callback: MongoCallback): void; /** * Rename a collection. * * @param fromCollection Name of current collection to rename. * @param toCollection New name of of the collection. * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#renameCollection */ renameCollection(fromCollection: string, toCollection: string, callback: MongoCallback>): void; /** * Rename a collection. * * @param fromCollection Name of current collection to rename. * @param toCollection New name of of the collection. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#renameCollection */ renameCollection(fromCollection: string, toCollection: string, options?: { dropTarget?: boolean; }): Promise>; /** * Rename a collection. * * @param fromCollection Name of current collection to rename. * @param toCollection New name of of the collection. * @param options Optional settings. * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#renameCollection */ renameCollection(fromCollection: string, toCollection: string, options: { dropTarget?: boolean; }, callback: MongoCallback>): void; /** * Get all the db statistics. * * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#stats */ stats(callback: MongoCallback): void; /** * Get all the db statistics. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#stats */ stats(options?: { scale?: number; }): Promise; /** * Get all the db statistics. * * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#stats */ stats(options: { scale?: number; }, callback: MongoCallback): void; /** * Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this database. Will ignore all changes to system collections. * @param pipeline 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. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#watch */ watch(pipeline?: Object[], options?: ChangeStreamOptions & { startAtClusterTime?: Timestamp; session?: ClientSession; }): ChangeStream; } /** * Server. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Server.html */ export declare class Server extends EventEmitter { /** * * @param host The host for the server, can be either an IP4, IP6 or domain socket style host. * @param port The server port if IP4. * @param options Optional. */ constructor(host: string, port: number, options?: ServerOptions); /** * All raw connections. */ connections(): Array; } /** * ReplSet. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/ReplSet.html */ export declare class ReplSet extends EventEmitter { /** * * @param servers A seedlist of servers participating in the replicaset. * @param options Optional. */ constructor(servers: Array, options?: ReplSetOptions); /** * All raw connections */ connections(): Array; } /** * Mongos. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Mongos.html */ export declare class Mongos extends EventEmitter { /** * * @param servers A seedlist of servers participating in the replicaset. * @param options Optional. */ constructor(servers: Array, options?: MongosOptions); /** * All raw connections */ connections(): Array; } /** * Creates a new Db instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#addUser */ export interface DbAddUserOptions { /** * The write concern. */ w?: string | number; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Custom data associated with the user (only Mongodb 2.6 or higher). */ customData?: Object; /** * Roles associated with the created user (only Mongodb 2.6 or higher). */ roles?: Object[]; } /** * Creates a new Db instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createCollection */ export interface CollectionCreateOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Return document results as raw BSON buffers. */ raw?: boolean; /** * A primary key factory object for generation of custom _id keys. */ pkFactory?: Object; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Returns an error if the collection does not exist. */ strict?: boolean; /** * Create a capped collection. */ capped?: boolean; /** * The size of the capped collection in bytes. */ size?: number; /** * The maximum number of documents in the capped collection. */ max?: number; /** * Create an index on the _id field of the document, True by default on MongoDB 2.2 or higher off for version < 2.2. */ autoIndexId?: boolean; } /** * Creates a new Db instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#collection */ export interface DbCollectionOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Return document results as raw BSON buffers. */ raw?: boolean; /** * A primary key factory object for generation of custom _id keys. */ pkFactory?: Object; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Returns an error if the collection does not exist. */ strict?: boolean; /** * Specify a read concern for the collection. (only MongoDB 3.2 or higher supported). */ readConcern?: ReadConcern; } /** * Creates an index on the db and collection collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createIndex */ export interface MongodbIndexOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Creates an unique index. */ unique?: boolean; /** * Creates a sparse index. */ sparse?: boolean; /** * Creates the index in the background, yielding whenever possible. */ background?: boolean; /** * A unique index cannot be created on a key that has pre-existing duplicate values. * If you would like to create the index anyway, keeping the first document * the database indexes and deleting all subsequent documents that have duplicate value. */ dropDups?: boolean; /** * For geospatial indexes set the lower bound for the co-ordinates. */ min?: number; /** * For geospatial indexes set the high bound for the co-ordinates. */ max?: number; /** * Specify the format version of the indexes. */ v?: number; /** * Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher). */ expireAfterSeconds?: number; /** * Override the autogenerated index name (useful if the resulting name is larger than 128 bytes). */ name?: string; } /** * Admin. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html */ export interface Admin { /** * Add a user to the database. * * @param username The username. * @param password The password. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#addUser */ addUser(username: string, password: string, callback: MongoCallback): void; /** * Add a user to the database. * * @param username The username. * @param password The password. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#addUser */ addUser(username: string, password: string, options?: AddUserOptions): Promise; /** * Add a user to the database. * * @param username The username. * @param password The password. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#addUser */ addUser(username: string, password: string, options: AddUserOptions, callback: MongoCallback): void; /** * Authenticate a user against the server. * * @param username The username. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#authenticate */ authenticate(username: string, callback: MongoCallback): void; /** * Authenticate a user against the server. * * @param username The username. * @param password The password. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#authenticate */ authenticate(username: string, password?: string): Promise; /** * Authenticate a user against the server. * * @param username The username. * @param password The password. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#authenticate */ authenticate(username: string, password: string, callback: MongoCallback): void; /** * Retrieve the server information for the current instance of the db client * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#buildInfo */ buildInfo(): Promise; /** * Retrieve the server information for the current instance of the db client * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#buildInfo */ buildInfo(callback: MongoCallback): void; /** * Execute a command. * * @param command The command hash. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#command */ command(command: Object, callback: MongoCallback): void; /** * Execute a command. * * @param command The command hash. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#command */ command(command: Object, options?: CommandOptions): Promise; /** * Execute a command. * * @param command The command hash. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#command */ command(command: Object, options: CommandOptions, callback: MongoCallback): void; /** * List the available databases. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#listDatabases */ listDatabases(): Promise; /** * List the available databases. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#listDatabases */ listDatabases(callback: MongoCallback): void; /** * Logout user from server, fire off on all connections and remove all auth info. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#logout. */ logout(): Promise; /** * Logout user from server, fire off on all connections and remove all auth info. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#logout. */ logout(callback: MongoCallback): void; /** * Ping the MongoDB server and retrieve results. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#ping */ ping(): Promise; /** * Ping the MongoDB server and retrieve results. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#ping */ ping(callback: MongoCallback): void; /** * Retrive the current profiling information for MongoDB. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#profilingInfo */ profilingInfo(): Promise; /** * Retrive the current profiling information for MongoDB. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#profilingInfo */ profilingInfo(callback: MongoCallback): void; /** * Retrieve the current profiling Level for MongoDB. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#profilingLevel */ profilingLevel(): Promise; /** * Retrieve the current profiling Level for MongoDB. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#profilingLevel */ profilingLevel(callback: MongoCallback): void; /** * Remove a user from a database. * * @param username The username. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#removeUser */ removeUser(username: string, callback: MongoCallback): void; /** * Remove a user from a database. * * @param username The username. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#removeUser */ removeUser(username: string, options?: FSyncOptions): Promise; /** * Remove a user from a database. * * @param username The username. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#removeUser */ removeUser(username: string, options: FSyncOptions, callback: MongoCallback): void; /** * Get ReplicaSet status. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#replSetGetStatus */ replSetGetStatus(): Promise; /** * Get ReplicaSet status. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#replSetGetStatus */ replSetGetStatus(callback: MongoCallback): void; /** * Retrieve the server information for the current * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#serverInfo */ serverInfo(): Promise; /** * instance of the db client * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#serverInfo * @param callback The command result callback. */ serverInfo(callback: MongoCallback): void; /** * Retrieve this db's server status. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#serverStatus */ serverStatus(): Promise; /** * Retrieve this db's server status. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#serverStatus */ serverStatus(callback: MongoCallback): void; /** * Set the current profiling level of MongoDB. * * @param level The new profiling level (off, slow_only, all). * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#setProfilingLevel */ setProfilingLevel(level: string): Promise; /** * Set the current profiling level of MongoDB. * * @param level The new profiling level (off, slow_only, all). * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#setProfilingLevel */ setProfilingLevel(level: string, callback: MongoCallback): void; /** * Validate an existing collection * * @param collectionNme The name of the collection to validate. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#validateCollection */ validateCollection(collectionNme: string, callback: MongoCallback): void; /** * Validate an existing collection * * @param collectionNme The name of the collection to validate. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#validateCollection */ validateCollection(collectionNme: string, options?: Object): Promise; /** * Validate an existing collection * * @param collectionNme The name of the collection to validate. * @param options Optional settings. * @param callback The command result callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#validateCollection */ validateCollection(collectionNme: string, options: Object, callback: MongoCallback): void; } /** * Add a user to the database. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#addUser */ export interface AddUserOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Specify a file sync write concern. */ fsync: boolean; /** * Custom data associated with the user (only Mongodb 2.6 or higher). */ customData?: Object; /** * Roles associated with the created user (only Mongodb 2.6 or higher). */ roles?: Object[]; } export interface ListIndexesOptions { /** * The batchSize for the returned command cursor or if pre 2.8 the systems batch collection. */ batchSize?: number; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } export interface GroupOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } /** * Remove a user from a database. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html#removeUser */ export interface FSyncOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Specify a file sync write concern. */ fsync?: boolean; } export interface FindOneAndDeleteOptions { /** * Limits the fields to return for all matching documents. */ projection?: Object; /** * Determines which document the operation modifies if the query selects multiple documents. */ sort?: Object; /** * The maximum amount of time to allow the query to run. */ maxTimeMS?: number; } /** * Create a new ObjectID instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/ObjectID.html */ export declare class ObjectID { constructor(s?: string | number); /** * The generation time of this ObjectId instance. */ generationTime: number; /** * Creates an ObjectID from a hex string representation of an ObjectID. */ static createFromHexString(hexString: string): ObjectID; /** * Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. */ static createFromTime(time: number): ObjectID; /** * Checks if a value is a valid bson ObjectId. */ static isValid(id: any): boolean; /** * Compares the equality of this ObjectID with otherID. */ equals(otherID: ObjectID): boolean; /** * Generate a 12 byte id buffer used in ObjectID's. */ generate(time?: number): string; /** * Returns the generation date (accurate up to the second) that this ID was generated. * */ getTimestamp(): Date; /** * Return the ObjectID id as a 24 byte hex string representation. */ toHexString(): string; /** * Get the timestamp and validate correctness. */ toString(): string; } /** * A class representation of the BSON Binary type. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Binary.html */ export declare class Binary { /** * @param buffer A buffer object containing the binary data. * @param subType The option binary type. */ constructor(buffer: Buffer, subType?: number); /** * Byte Array BSON type. */ static SUBTYPE_BYTE_ARRAY: number; /** * Default BSON type. */ static SUBTYPE_DEFAULT: number; /** * Function BSON type. */ static SUBTYPE_FUNCTION: number; /** * MD5 BSON type. */ static SUBTYPE_MD5: number; /** * User BSON type. */ static SUBTYPE_USER_DEFINED: number; /** * UUID BSON type. */ static SUBTYPE_UUID: number; /** * OLD UUID BSON type */ static SUBTYPE_UUID_OLD: number; /** * The length of the binary. */ length(): number; /** * Updates this binary with byte_value. * * @param byte_value A single byte we wish to write. */ put(byte_value: number | string): void; /** * Reads length bytes starting at position. * * @param position Read from the given position in the Binary. * @param length The number of bytes to read. */ read(position: number, length: number): Buffer; /** * Returns the value of this binary as a string. */ value(): string; /** * Writes a buffer or string to the binary * * @param buffer A string or buffer to be written to the Binary BSON object. * @param offset Specify the binary of where to write the content. */ write(buffer: Buffer | string, offset: number): void; } /** * A class representation of the BSON Double type. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Double.html */ export declare class Double { /** * @param value The number we want to represent as a double. */ constructor(value: number); /** * Access the number value. */ valueOf(): number; } /** * Long * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Long.html */ export declare class Long { /** * @param low The low (signed) 32 bits of the Long. * @param high The high (signed) 32 bits of the Long. */ constructor(low: number, high: number); static MAX_VALUE: Long; static MIN_VALUE: Long; static NEG_ONE: Long; static ONE: Long; static ZERO: Long; /** * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. * Each is assumed to use 32 bits. * * @param lowBits The low 32-bits. * @param highBits The high 32-bits. */ static fromBits(lowBits: number, highBits: number): Long; /** * Returns a Long representing the given (32-bit) integer value. * * @param value The 32-bit integer in question. */ static fromInt(value: number): Long; /** * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. * * @param value The number in question. */ static fromNumber(value: number): Long; /** * Returns a Long representation of the given string, written using the given radix. * * @param str The textual representation of the Long. * @param radix The radix in which the text is written. */ static fromString(str: string, radix?: number): Long; /** * Returns the sum of this and the given Long. * * @param other Long to add to this one. */ add(other: Long): Long; /** * Returns the bitwise-AND of this Long and the given one. * * @param other The Long with which to AND. */ and(other: Long): Long; /** * Compares this Long with the given one. * * @param other Long to compare against. */ compare(other: Long): number; /** * Returns this Long divided by the given one. * * @param other Long by which to divide. */ div(other: Long): Long; /** * Return whether this Long equals the other. * * @param other Long to compare against. */ equals(other: Long): boolean; /** * Return the high 32-bits value. */ getHighBits(): number; /** * Return the low 32-bits value. */ getLowBits(): number; /** * Return the low unsigned 32-bits value. */ getLowBitsUnsigned(): number; /** * Returns the number of bits needed to represent the absolute value of this Long. */ getNumBitsAbs(): number; /** * Return whether this Long is greater than the other. * * @param other Long to compare against. */ greaterThan(other: Long): number; /** * Return whether this Long is greater than or equal to the other. * * @param other Long to compare against. */ greaterThanOrEqual(other: Long): number; /** * Return whether this value is negative. */ isNegative(): boolean; /** * Return whether this value is odd. */ isOdd(): boolean; /** * Return whether this value is zero. */ isZero(): boolean; /** * Return whether this Long is less than the other. * * @param other Long to compare against. */ lessThan(other: Long): boolean; /** * Return whether this Long is less than or equal to the other. * * @param other Long to compare against. */ lessThanOrEqual(other: Long): boolean; /** * Returns this Long modulo the given one. * * @param other Long by which to mod. */ modulo(other: Long): Long; /** * Returns the product of this and the given Long. * * @param other Long to multiply with this. */ multiply(other: Long): Long; /** * The negation of this value. */ negate(): Long; /** * The bitwise-NOT of this value. */ not(): Long; /** * Return whether this Long does not equal the other. * * @param other Long to compare against. */ notEquals(other: Long): boolean; /** * Returns the bitwise-OR of this Long and the given one. * * @param other The Long with which to OR. */ or(other: Long): Long; /** * Returns this Long with bits shifted to the left by the given amount. * * @param other The number of bits by which to shift. */ shiftLeft(other: number): Long; /** * Returns this Long with bits shifted to the right by the given amount. * * @param other The number of bits by which to shift. */ shiftRight(other: number): Long; /** * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. * * @param other The number of bits by which to shift. */ shiftRightUnsigned(other: number): Long; /** * Returns the difference of this and the given Long. * * @param other Long to subtract from this. */ subtract(other: Long): Long; /** * Return the int value. */ toInt(): number; /** * Return the JSON value. */ toJSON(): string; /** * Return the Number value. */ toNumber(): number; /** * Return the String value. * * @param opt_radix The radix in which the text should be written. */ toString(opt_radix?: number): string; /** * Returns the bitwise-XOR of this Long and the given one. * * @param other The Long with which to XOR. */ xor(other: Long): Long; } /** * @see http://mongodb.github.io/node-mongodb-native/2.1/api/MaxKey.html */ export declare class MaxKey { } /** * @see http://mongodb.github.io/node-mongodb-native/2.1/api/MinKey.html */ export declare class MinKey { } /** * Timestamp. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Timestamp.html */ export declare class Timestamp { /** * @param low The low (signed) 32 bits of the Timestamp. * @param high The high (signed) 32 bits of the Timestamp. */ constructor(low: number, high: number); static MAX_VALUE: Timestamp; static MIN_VALUE: Timestamp; static NEG_ONE: Timestamp; static ONE: Timestamp; static ZERO: Timestamp; /** * Returns a Timestamp representing the 64-bit integer that comes by concatenating the * given high and low bits. Each is assumed to use 32 bits.. * * @param lowBits The low 32-bits. * @param highBits The high 32-bits. */ static fromBits(lowBits: number, highBits: number): Timestamp; /** * Returns a Timestamp representing the given (32-bit) integer value. * * @param value The 32-bit integer in question. */ static fromInt(value: number): Timestamp; /** * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. * * @param value The number in question. */ static fromNumber(value: number): Timestamp; /** * Returns a Timestamp representation of the given string, written using the given radix. * * @param str The textual representation of the Timestamp. * @param radix The radix in which the text is written. */ static fromString(str: string, radix?: number): Timestamp; /** * Returns the sum of this and the given Timestamp. * * @param other Timestamp to add to this one. */ add(other: Timestamp): Timestamp; /** * Returns the bitwise-AND of this Timestamp and the given one. * * @param other Timestamp to add to this one. */ and(other: Timestamp): Timestamp; /** * Compares this Timestamp with the given one. * * @param other Timestamp to compare against. */ compare(other: Timestamp): number; /** * Returns this Timestamp divided by the given one. * * @param other Timestamp by which to divide. */ div(other: Timestamp): Timestamp; /** * Return whether this Timestamp equals the other * * @param other */ equals(other: Timestamp): boolean; /** * Return the high 32-bits value. */ getHighBits(): number; /** * Return the low 32-bits value. */ getLowBits(): number; /** * Return the low unsigned 32-bits value. */ getLowBitsUnsigned(): number; /** * Returns the number of bits needed to represent the absolute value of this Timestamp. */ getNumBitsAbs(): number; /** * Return whether this Timestamp is greater than the other. * * @param other Timestamp to compare against. */ greaterThan(other: Timestamp): number; /** * Return whether this Timestamp is greater than or equal to the other. * * @param other Timestamp to compare against. */ greaterThanOrEqual(other: Timestamp): number; /** * Return whether this value is negative. */ isNegative(): boolean; /** * IsOdd. * Return whether this value is odd. */ isOdd(): boolean; /** * Return whether this value is zero. */ isZero(): boolean; /** * Return whether this Timestamp is less than the other. * * @param other Timestamp to compare against. */ lessThan(other: Timestamp): boolean; /** * Return whether this Timestamp is less than or equal to the other. * * @param other Timestamp to compare against. */ lessThanOrEqual(other: Timestamp): boolean; /** * Returns this Timestamp modulo the given one. * * @param other Timestamp by which to mod. */ modulo(other: Timestamp): Timestamp; /** * Returns the product of this and the given Timestamp. * * @param other Timestamp to multiply with this. */ multiply(other: Timestamp): Timestamp; /** * The negation of this value. */ negate(): Timestamp; /** * The bitwise-NOT of this value. */ not(): Timestamp; /** * Return whether this Timestamp does not equal the other. * * @param other Timestamp to compare against. */ notEquals(other: Timestamp): boolean; /** * Returns the bitwise-OR of this Timestamp and the given one. * * @param other The Timestamp with which to OR. */ or(other: Timestamp): Timestamp; /** * Returns this Timestamp with bits shifted to the left by the given amount. * * @param other The number of bits by which to shift. */ shiftLeft(other: number): Timestamp; /** * Returns this Timestamp with bits shifted to the right by the given amount. * * @param other The number of bits by which to shift. */ shiftRight(other: number): Timestamp; /** * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. * * @param other */ shiftRightUnsigned(other: number): Timestamp; /** * Returns the difference of this and the given Timestamp. * * @param other Timestamp to subtract from this. */ subtract(other: Timestamp): Timestamp; /** * Return the int value. */ toInt(): number; /** * Return the JSON value. */ toJSON(): string; /** * Return the Number value. */ toNumber(): number; /** * Return the String value. * * @param radix The radix in which the text should be written. */ toString(radix?: number): string; /** * Returns the bitwise-XOR of this Timestamp and the given one. * * @param other The Timestamp with which to XOR. */ xor(other: Timestamp): Timestamp; } export interface CollectionDeleteOneOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimmeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } export interface CollectionDistinctOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } /** * Create a new ObjectID instance. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html */ export interface Collection { /** * Get the collection name. */ collectionName: string; /** * Get the full collection namespace. */ namespace: string; /** * The current write concern values. */ writeConcern: WriteConcern; /** * The current read concern values. */ readConcern: ReadConcern; /** * Get current index hint for collection. */ hint: any; /** * Execute an aggregation framework pipeline against the collection, needs MongoDB >= 2.2 * * @param pipeline Array containing all the aggregation framework commands for the execution. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#aggregate */ aggregate(pipeline: Object[], callback: MongoCallback): AggregationCursor; /** * Execute an aggregation framework pipeline against the collection, needs MongoDB >= 2.2 * * @param pipeline Array containing all the aggregation framework commands for the execution. * @param options Optional. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#aggregate */ aggregate(pipeline: Object[], options?: CollectionAggregationOptions, callback?: MongoCallback): AggregationCursor; /** * Execute an aggregation framework pipeline against the collection, needs MongoDB >= 2.2 * * @param pipeline Array containing all the aggregation framework commands for the execution. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#aggregate */ aggregate(pipeline: Object[], callback: MongoCallback): AggregationCursor; /** * Execute an aggregation framework pipeline against the collection, needs MongoDB >= 2.2 * * @param pipeline Array containing all the aggregation framework commands for the execution. * @param options Optional. * @param callback Optional * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#aggregate */ aggregate(pipeline: Object[], options?: CollectionAggregationOptions, callback?: MongoCallback): AggregationCursor; /** * BulkWrite. * * @param operations Bulk operations to perform. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#bulkWrite */ bulkWrite(operations: Object[], callback: MongoCallback): void; /** * BulkWrite. * * @param operations Bulk operations to perform. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#bulkWrite */ bulkWrite(operations: Object[], options?: CollectionBulkWriteOptions): Promise; /** * BulkWrite. * * @param operations Bulk operations to perform. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#bulkWrite */ bulkWrite(operations: Object[], options: CollectionBulkWriteOptions, callback: MongoCallback): void; /** * Count number of matching documents in the db to a query. * * @param query The query for the count. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#count */ count(query: FilterQuery, callback: MongoCallback): void; /** * Count number of matching documents in the db to a query. * * @param query The query for the count. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#count */ count(query: FilterQuery, options?: MongoCountPreferences): Promise; /** * Count number of matching documents in the db to a query. * * @param query The query for the count= * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#count */ count(query: FilterQuery, options: MongoCountPreferences, callback: MongoCallback): void; /** * Count number of matching documents in the db to a query. * * @param query The query for the countDocuments. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#countDocumentst */ countDocuments(query: FilterQuery, callback: MongoCallback): void; /** * Count number of matching documents in the db to a query. * * @param query The query for the count. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#countDocuments */ countDocuments(query: FilterQuery, options?: MongoCountPreferences): Promise; /** * Count number of matching documents in the db to a query. * * @param query The query for the count= * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#countDocuments */ countDocuments(query: FilterQuery, options: MongoCountPreferences, callback: MongoCallback): void; /** * Creates an index on the db and collection collection. * * @param fieldOrSpec Defines the index. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndex */ createIndex(fieldOrSpec: string | any, callback: MongoCallback): void; /** * Creates an index on the db and collection collection. * * @param fieldOrSpec Defines the index. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndex */ createIndex(fieldOrSpec: string | any, options?: MongodbIndexOptions): Promise; /** * Creates an index on the db and collection collection. * * @param fieldOrSpec Defines the index. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndex */ createIndex(fieldOrSpec: string | any, options: MongodbIndexOptions, callback: MongoCallback): void; /** * CreateIndexes. * * @param indexSpecs An array of index specifications to be created. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndexes and http://docs.mongodb.org/manual/reference/command/createIndexes/ */ createIndexes(indexSpecs: Object[]): Promise; /** * CreateIndexes. * * @param indexSpecs An array of index specifications to be created. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#createIndexes and http://docs.mongodb.org/manual/reference/command/createIndexes/ */ createIndexes(indexSpecs: Object[], callback: MongoCallback): void; /** * Delete multiple documents on MongoDB. * * @param filter The Filter used to select the documents to remove. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteMany */ deleteMany(filter: FilterQuery, callback: MongoCallback): void; /** * Delete multiple documents on MongoDB. * * @param filter The Filter used to select the documents to remove. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteMany */ deleteMany(filter: FilterQuery, options?: CollectionOptions): Promise; /** * Delete multiple documents on MongoDB. * * @param filter The Filter used to select the documents to remove. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteMany */ deleteMany(filter: FilterQuery, options: CollectionOptions, callback: MongoCallback): void; /** * Delete a document on MongoDB. * * @param filter The Filter used to select the document to remove. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteOne */ deleteOne(filter: FilterQuery, callback: MongoCallback): void; /** * Delete a document on MongoDB. * * @param filter The Filter used to select the document to remove. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteOne */ deleteOne(filter: FilterQuery, options?: CollectionDeleteOneOptions): Promise; /** * Delete a document on MongoDB. * * @param filter The Filter used to select the document to remove. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteOne */ deleteOne(filter: FilterQuery, options: CollectionDeleteOneOptions, callback: MongoCallback): void; /** * The distinct command returns returns a list of distinct values for the given key across a collection. * * @param key Field of the document to find distinct values for. * @param query The query for filtering the set of documents to which we apply the distinct filter. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#distinct */ distinct(key: string, query: FilterQuery, callback: MongoCallback): void; /** * The distinct command returns returns a list of distinct values for the given key across a collection. * * @param key Field of the document to find distinct values for. * @param query The query for filtering the set of documents to which we apply the distinct filter. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#distinct */ distinct(key: string, query: FilterQuery, options?: CollectionDistinctOptions): Promise; /** * The distinct command returns returns a list of distinct values for the given key across a collection. * * @param key Field of the document to find distinct values for. * @param query The query for filtering the set of documents to which we apply the distinct filter. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#distinct */ distinct(key: string, query: FilterQuery, options: CollectionDistinctOptions, callback: MongoCallback): void; /** * Drop the collection from the database, removing it permanently. New accesses will create a new collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#drop */ drop(): Promise; /** * Drop the collection from the database, removing it permanently. New accesses will create a new collection. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#drop */ drop(callback: MongoCallback): void; /** * Drops an index from this collection. * * @param indexName Name of the index to drop. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#dropIndex */ dropIndex(indexName: string, callback: MongoCallback): void; /** * Drops an index from this collection. * * @param indexName Name of the index to drop. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#dropIndex */ dropIndex(indexName: string, options?: CollectionOptions): Promise; /** * Drops an index from this collection. * * @param indexName Name of the index to drop. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#dropIndex */ dropIndex(indexName: string, options: CollectionOptions, callback: MongoCallback): void; /** * Drops all indexes from this collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#dropIndexes */ dropIndexes(): Promise; /** * Drops all indexes from this collection. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#dropIndexes */ dropIndexes(callback?: MongoCallback): void; /** * Creates a cursor for a query that can be used to iterate over results from MongoDB. * * @param query The cursor query object. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#find */ find(query?: Object): Cursor; /** * Creates a cursor for a query that can be used to iterate over results from MongoDB. * * @param query The cursor query object. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#find */ find(query?: FilterQuery): Cursor; /** @deprecated */ find(query: FilterQuery, fields?: Object, skip?: number, limit?: number, timeout?: number): Cursor; /** * Fetches the first document that matches the query. * * @param query Query for find Operation. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne * @deprecated use find().limit(1).next(function(err, doc){}). */ findOne(query: FilterQuery, callback: MongoCallback): void; /** * Fetches the first document that matches the query. * * @param query Query for find Operation. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne * @deprecated use find().limit(1).next(function(err, doc){}). */ findOne(query: FilterQuery, options?: MongodbFindOneOptions): Promise; /** * Fetches the first document that matches the query. * * @param query Query for find Operation. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne * @deprecated use find().limit(1).next(function(err, doc){}). */ findOne(query: FilterQuery, options: MongodbFindOneOptions, callback: MongoCallback): void; /** * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndDelete */ findOneAndDelete(filter: FilterQuery, callback: MongoCallback): void; /** * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndDelete */ findOneAndDelete(filter: FilterQuery, options?: FindOneAndDeleteOptions): Promise; /** * Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndDelete */ findOneAndDelete(filter: FilterQuery, options: FindOneAndDeleteOptions, callback: MongoCallback): void; /** * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param replacement Document replacing the matching document. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndReplace */ findOneAndReplace(filter: FilterQuery, replacement: Object, callback: MongoCallback): void; /** * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param replacement Document replacing the matching document. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndReplace */ findOneAndReplace(filter: FilterQuery, replacement: Object, options?: FindOneAndReplaceOption): Promise; /** * Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param replacement Document replacing the matching document. * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndReplace */ findOneAndReplace(filter: FilterQuery, replacement: Object, options: FindOneAndReplaceOption, callback: MongoCallback): void; /** * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param update Update operations to be performed on the document. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndUpdate */ findOneAndUpdate(filter: FilterQuery, update: UpdateQuery, callback: MongoCallback): void; /** * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param update Update operations to be performed on the document. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndUpdate */ findOneAndUpdate(filter: FilterQuery, update: UpdateQuery, options?: FindOneAndReplaceOption): Promise; /** * Find a document and update it in one atomic operation, requires a write lock for the duration of the operation. * * @param filter Document selection filter. * @param update Update operations to be performed on the document. * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndUpdate */ findOneAndUpdate(filter: FilterQuery, update: UpdateQuery, options: FindOneAndReplaceOption, callback: MongoCallback): void; /** * Execute a geo search using a geo haystack index on a collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoHaystackSearch */ geoHaystackSearch(x: number, y: number, callback: MongoCallback): void; /** * Execute a geo search using a geo haystack index on a collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoHaystackSearch */ geoHaystackSearch(x: number, y: number, options?: GeoHaystackSearchOptions): Promise; /** * Execute a geo search using a geo haystack index on a collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param options Optional settings * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoHaystackSearch */ geoHaystackSearch(x: number, y: number, options: GeoHaystackSearchOptions, callback: MongoCallback): void; /** * Execute the geoNear command to search for items in the collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoNear */ geoNear(x: number, y: number, callback: MongoCallback): void; /** * Execute the geoNear command to search for items in the collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param options Optionals. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoNear */ geoNear(x: number, y: number, options?: GeoNearOptions): Promise; /** * Execute the geoNear command to search for items in the collection. * * @param x Point to search on the x axis, ensure the indexes are ordered in the same order. * @param y Point to search on the y axis, ensure the indexes are ordered in the same order. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoNear */ geoNear(x: number, y: number, options: GeoNearOptions, callback: MongoCallback): void; /** * Run a group command across a collection. * * @param keys An object, array or function expressing the keys to group by. * @param condition An optional condition that must be true for a row to be considered. * @param initial Initial value of the aggregation counter object. * @param reduce The reduce function aggregates (reduces) the objects iterated. * @param finalize An optional function to be run on each item in the result set just before the item is returned. * @param command Specify if you wish to run using the internal group command or using eval, default is true. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#group */ group(keys: Object | Array | Function | Code, condition: Object, initial: Object, reduce: Function | Code, finalize: Function | Code, command: boolean, callback: MongoCallback): void; /** * Run a group command across a collection. * * @param keys An object, array or function expressing the keys to group by. * @param condition An optional condition that must be true for a row to be considered. * @param initial Initial value of the aggregation counter object. * @param reduce The reduce function aggregates (reduces) the objects iterated. * @param finalize An optional function to be run on each item in the result set just before the item is returned. * @param command Specify if you wish to run using the internal group command or using eval, default is true. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#group */ group(keys: Object | Array | Function | Code, condition: Object, initial: Object, reduce: Function | Code, finalize: Function | Code, command: boolean, options?: GroupOptions): Promise; /** * Run a group command across a collection. * * @param keys An object, array or function expressing the keys to group by. * @param condition An optional condition that must be true for a row to be considered. * @param initial Initial value of the aggregation counter object. * @param reduce The reduce function aggregates (reduces) the objects iterated. * @param finalize An optional function to be run on each item in the result set just before the item is returned. * @param command Specify if you wish to run using the internal group command or using eval, default is true. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#group */ group(keys: Object | Array | Function | Code, condition: Object, initial: Object, reduce: Function | Code, finalize: Function | Code, command: boolean, options: GroupOptions, callback: MongoCallback): void; /** * Retrieve all the indexes on the collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexes */ indexes(): Promise; /** * Retrieve all the indexes on the collection. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexes */ indexes(callback: MongoCallback): void; /** * Checks if one or more indexes exist on the collection, fails on first non-existing index. * * @param indexes One or more index names to check. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexExists */ indexExists(indexes: string | string[]): Promise; /** * Checks if one or more indexes exist on the collection, fails on first non-existing index. * * @param indexes One or more index names to check. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexExists */ indexExists(indexes: string | string[], callback: MongoCallback): void; /** * Retrieves this collections index info. * * @param callback The command result callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexInformation */ indexInformation(callback: MongoCallback): void; /** * Retrieves this collections index info. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexInformation */ indexInformation(options?: { full: boolean; }): Promise; /** * Retrieves this collections index info. * * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#indexInformation */ indexInformation(options: { full: boolean; }, callback: MongoCallback): void; /** * Initiate an In order bulk write operation, operations will be serially executed in the order they are added, * creating a new operation for each switch in types. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#initializeOrderedBulkOp */ initializeOrderedBulkOp(options?: CollectionOptions): OrderedBulkOperation; /** * Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#initializeUnorderedBulkOp */ initializeUnorderedBulkOp(options?: CollectionOptions): UnorderedBulkOperation; /** @deprecated Use insertOne, insertMany or bulkWrite */ insert(docs: Object, callback: MongoCallback): void; /** @deprecated Use insertOne, insertMany or bulkWrite */ insert(docs: Object, options?: CollectionInsertOneOptions): Promise; /** @deprecated Use insertOne, insertMany or bulkWrite */ insert(docs: Object, options: CollectionInsertOneOptions, callback: MongoCallback): void; /** * InsertMany. * * @param docs Documents to insert. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertMany */ insertMany(docs: Object[], callback: MongoCallback): void; /** * InsertMany. * * @param docs Documents to insert. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertMany */ insertMany(docs: Object[], options?: CollectionInsertManyOptions): Promise; /** * InsertMany. * * @param docs Documents to insert. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertMany */ insertMany(docs: Object[], options: CollectionInsertManyOptions, callback: MongoCallback): void; /** * InsertOne. * * @param docs Document to insert. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertOne */ insertOne(docs: Object, callback: MongoCallback): void; /** * InsertOne. * * @param docs Document to insert. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertOne */ insertOne(docs: Object, options?: CollectionInsertOneOptions): Promise; /** * InsertOne. * * @param docs Document to insert. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertOne */ insertOne(docs: Object, options: CollectionInsertOneOptions, callback: MongoCallback): void; /** * Returns if the collection is a capped collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#isCapped */ isCapped(): Promise; /** * Returns if the collection is a capped collection. * * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#isCapped */ isCapped(callback: MongoCallback): void; /** * Get the list of all indexes information for the collection. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#listIndexes */ listIndexes(options?: ListIndexesOptions): CommandCursor; /** * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection. * * @param map The mapping function. * @param reduce The reduce function. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#mapReduce */ mapReduce(map: Function | string, reduce: Function | string, callback: MongoCallback): void; /** * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection. * * @param map The mapping function. * @param reduce The reduce function. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#mapReduce */ mapReduce(map: Function | string, reduce: Function | string, options?: MapReduceOptions): Promise; /** * Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection. * * @param map The mapping function. * @param reduce The reduce function. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#mapReduce */ mapReduce(map: Function | string, reduce: Function | string, options: MapReduceOptions, callback: MongoCallback): void; /** * Returns the options of the collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#options */ options(): Promise; /** * Returns the options of the collection. * * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#options */ options(callback: MongoCallback): void; /** * Return N number of parallel cursors for a collection allowing parallel reading of entire collection. There are * no ordering guarantees for returned results. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#parallelCollectionScan */ parallelCollectionScan(callback: MongoCallback[]>): void; /** * Return N number of parallel cursors for a collection allowing parallel reading of entire collection. There are * no ordering guarantees for returned results. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#parallelCollectionScan */ parallelCollectionScan(options?: ParallelCollectionScanOptions): Promise[]>; /** * Return N number of parallel cursors for a collection allowing parallel reading of entire collection. There are * no ordering guarantees for returned results. * * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#parallelCollectionScan */ parallelCollectionScan(options: ParallelCollectionScanOptions, callback: MongoCallback[]>): void; /** * Reindex all indexes on the collection. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#reIndex */ reIndex(): Promise; /** * Reindex all indexes on the collection. * * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#reIndex */ reIndex(callback: MongoCallback): void; /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ remove(selector: Object, callback: MongoCallback): void; /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ remove(selector: Object, options?: CollectionOptions & { single?: boolean; }): Promise; /** @deprecated Use use deleteOne, deleteMany or bulkWrite */ remove(selector: Object, options?: CollectionOptions & { single?: boolean; }, callback?: MongoCallback): void; /** * Rename the collection. * * @param newName New name of of the collection. * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#rename */ rename(newName: string, callback: MongoCallback>): void; /** * Rename the collection. * * @param newName New name of of the collection. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#rename */ rename(newName: string, options?: { dropTarget?: boolean; }): Promise>; /** * Rename the collection. * * @param newName New name of of the collection. * @param options Optional settings. * @param callback The results callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#rename */ rename(newName: string, options: { dropTarget?: boolean; }, callback: MongoCallback>): void; /** * Replace a document on MongoDB. * * @param filter The Filter used to select the document to update. * @param doc The Document that replaces the matching document. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#replaceOne */ replaceOne(filter: FilterQuery, doc: Object, callback: MongoCallback): void; /** * Replace a document on MongoDB. * * @param filter The Filter used to select the document to update. * @param doc The Document that replaces the matching document. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#replaceOne */ replaceOne(filter: FilterQuery, doc: Object, options?: ReplaceOneOptions): Promise; /** * Replace a document on MongoDB. * * @param filter The Filter used to select the document to update. * @param doc The Document that replaces the matching document. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#replaceOne */ replaceOne(filter: FilterQuery, doc: Object, options: ReplaceOneOptions, callback: MongoCallback): void; /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ save(doc: Object, callback: MongoCallback): void; /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ save(doc: Object, options?: CollectionOptions): Promise; /** @deprecated Use insertOne, insertMany, updateOne or updateMany */ save(doc: Object, options: CollectionOptions, callback: MongoCallback): void; /** * Get all the collection statistics. * * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#stats */ stats(callback: MongoCallback): void; /** * Get all the collection statistics. * * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#stats */ stats(options?: { scale: number; }): Promise; /** * Get all the collection statistics. * * @param options Optional settings. * @param callback The collection result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#stats */ stats(options: { scale: number; }, callback: MongoCallback): void; /** @deprecated use updateOne, updateMany or bulkWrite */ update(filter: FilterQuery, update: UpdateQuery, callback: MongoCallback): void; /** @deprecated use updateOne, updateMany or bulkWrite */ update(filter: FilterQuery, update: UpdateQuery, options?: ReplaceOneOptions & { multi?: boolean; }): Promise; /** @deprecated use updateOne, updateMany or bulkWrite */ update(filter: FilterQuery, update: UpdateQuery, options: ReplaceOneOptions & { multi?: boolean; }, callback: MongoCallback): void; /** * Update multiple documents on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateMany */ updateMany(filter: FilterQuery, update: UpdateQuery, callback: MongoCallback): void; /** * Update multiple documents on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateMany */ updateMany(filter: FilterQuery, update: UpdateQuery, options?: UpdateManyOptions): Promise; /** * Update multiple documents on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateMany */ updateMany(filter: FilterQuery, update: UpdateQuery, options: UpdateManyOptions, callback: MongoCallback): void; /** * Update a single document on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateOne */ updateOne(filter: FilterQuery, update: UpdateQuery, callback: MongoCallback): void; /** * Update a single document on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param options Optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateOne */ updateOne(filter: FilterQuery, update: UpdateQuery, options?: ReplaceOneOptions): Promise; /** * Update a single document on MongoDB. * * @param filter The Filter used to select the document to update. * @param update The update operations to be applied to the document. * @param options Optional settings. * @param callback The command result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#updateOne */ updateOne(filter: FilterQuery, update: UpdateQuery, options: ReplaceOneOptions, callback: MongoCallback): void; /** * Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this collection. * @param pipeline 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. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#watch */ watch(pipeline?: Object[], options?: ChangeStreamOptions & { startAtClusterTime?: Timestamp; session?: ClientSession; }): ChangeStream; } /** * Condition. */ export declare type Condition = { $eq?: T[P]; $gt?: T[P]; $gte?: T[P]; $in?: T[P][]; $lt?: T[P]; $lte?: T[P]; $ne?: T[P]; $nin?: T[P][]; $and?: (FilterQuery | T[P])[]; $or?: (FilterQuery | T[P])[]; $not?: (FilterQuery | T[P])[] | T[P]; $expr?: any; $jsonSchema?: any; $mod?: [number, number]; $regex?: RegExp; $options?: string; $text?: { $search: string; $language?: string; $caseSensitive?: boolean; $diacraticSensitive?: boolean; }; $where?: Object; $geoIntersects?: Object; $geoWithin?: Object; $near?: Object; $nearSphere?: Object; $elemMatch?: Object; $size?: number; $bitsAllClear?: Object; $bitsAllSet?: Object; $bitsAnyClear?: Object; $bitsAnySet?: Object; [key: string]: any; }; /** * @see https://docs.mongodb.com/manual/reference/operator/update */ export declare type UpdateQuery = { $inc?: { [P in keyof T]?: number; } | { [key: string]: number; }; $min?: { [P in keyof T]?: number; } | { [key: string]: number; }; $max?: { [P in keyof T]?: number; } | { [key: string]: number; }; $mul?: { [P in keyof T]?: number; } | { [key: string]: number; }; $set?: Partial | { [key: string]: any; }; $setOnInsert?: Partial | { [key: string]: any; }; $unset?: { [P in keyof T]?: ""; } | { [key: string]: ""; }; $rename?: { [key: string]: keyof T; } | { [key: string]: string; }; $currentDate?: { [P in keyof T]?: (true | { $type: "date" | "timestamp"; }); } | { [key: string]: (true | { $type: "date" | "timestamp"; }); }; $addToSet?: Partial | { [key: string]: any; }; $pop?: { [P in keyof T]?: -1 | 1; } | { [key: string]: -1 | 1; }; $pull?: Partial | { [key: string]: Condition; }; $push?: Partial | { [key: string]: any; }; $pushAll?: Partial | { [key: string]: Array; }; $each?: Partial | { [key: string]: Array; }; $bit?: { [P in keyof T]?: any; } | { [key: string]: any; }; }; export declare type FilterQuery = { [P in keyof T]?: T[P] | Condition; } | { [key: string]: any; }; /** * The name of the target collection. * * @see http://docs.mongodb.org/manual/reference/command/collStats/ */ export interface CollStats { /** * Namespace. */ ns: string; /** * The number of objects or documents in this collection. */ count: number; /** * Collection size in bytes. */ size: number; /** * Average object size in bytes. */ avgObjSize: number; /** * (Pre)allocated space for the collection in bytes. */ storageSize: number; /** * Number of extents (contiguously allocated chunks of datafile space). */ numExtents: number; /** * Number of indexes. */ nindexes: number; /** * Size of the most recently created extent in bytes. */ lastExtentSize: number; /** * Padding can speed up updates if documents grow. */ paddingFactor: number; /** * A number that indicates the user-set flags on the collection. userFlags * only appears when using the mmapv1 storage engine. */ userFlags: number; /** * Total index size in bytes. */ totalIndexSize: number; /** * Size of specific indexes in bytes. */ indexSizes: { _id_: number; username: number; }; /** * This field will be “true” if the collection is capped. */ capped: boolean; /** * Shows the maximum size of a capped collection. */ maxSize: boolean; /** * This document contains data reported directly by the WiredTiger engine and other data for internal diagnostic use. */ wiredTiger: any; /** * A document that reports data from the WiredTiger storage engine for each index in the collection. * Other storage engines will return an empty document. */ indexDetails: any; /** * */ ok: number; } /** * CollectionAggregationOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#aggregate */ export interface CollectionAggregationOptions { readPreference?: ReadPreference | string; /** * Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor. */ cursor?: { batchSize: number; }; /** * Explain returns the aggregation execution plan (requires mongodb 2.6 >). */ explain?: boolean; /** * allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >). */ allowDiskUse?: boolean; /** * maxTimeMS specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point. */ maxTimeMS?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } /** * CollectionInsertManyOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertMany */ export interface CollectionInsertManyOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Force server to assign _id values instead of driver. */ forceServerObjectId?: boolean; } export interface UpdateManyOptions { /** * Update operation is an upsert. */ upsert?: boolean; /** * The write concern. */ w?: any; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; } /** * CollectionBulkWriteOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#bulkWrite */ export interface CollectionBulkWriteOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Execute write operation in ordered or unordered fashion. */ ordered?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } /** * BulkWriteOpResultObject. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~BulkWriteOpResult */ export interface BulkWriteOpResultObject { /** * Number of documents inserted. */ insertedCount?: number; /** * Number of documents matched for update. */ matchedCount?: number; /** * Number of documents modified. */ modifiedCount?: number; /** * Number of documents deleted. */ deletedCount?: number; /** * Number of documents upserted. */ upsertedCount?: number; /** * Inserted document generated Id's, hash key is the index of the originating operation. */ insertedIds?: any; /** * Upserted document generated Id's, hash key is the index of the originating operation. */ upsertedIds?: any; /** * The command result object. */ result?: any; } /** * MongoCountPreferences. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#count */ export interface MongoCountPreferences { /** * The limit of documents to count. */ limit?: number; /** * The number of documents to skip for the count. */ skip?: boolean; /** * An index name hint for the query. */ hint?: string; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } /** * DeleteWriteOpResultObject. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~deleteWriteOpResult */ export interface DeleteWriteOpResultObject { /** * The raw result returned from MongoDB, field will vary depending on server version. * @param ok Is 1 if the command executed correctly. * @param n The total count of documents deleted. */ result: { ok?: number; n?: number; }; /** * The connection object used for the operation. */ connection?: any; /** * The number of documents deleted. */ deletedCount?: number; } /** * FindAndModifyWriteOpResultObject. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~findAndModifyWriteOpResult */ export interface FindAndModifyWriteOpResultObject { /** * Document returned from findAndModify command. */ value?: any; /** * The raw lastErrorObject returned from the command. */ lastErrorObject?: any; /** * Is 1 if the command executed correctly. */ ok?: number; } /** * FindOneAndReplaceOption. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOneAndReplace */ export interface FindOneAndReplaceOption { /** * Limits the fields to return for all matching documents. */ projection?: Object; /** * Determines which document the operation modifies if the query selects multiple documents. */ sort?: Object; /** * The maximum amount of time to allow the query to run. */ maxTimeMS?: number; /** * Upsert the document if it does not exist. */ upsert?: boolean; /** * When false, returns the updated document rather than the original. The default is true. */ returnOriginal?: boolean; } /** * GeoHaystackSearchOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoHaystackSearch */ export interface GeoHaystackSearchOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Include results up to maxDistance from the point. */ maxDistance?: number; /** * Filter the results by a query. */ search?: Object; /** * Max number of results to return. */ limit?: number; } /** * GeoNearOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#geoNear */ export interface GeoNearOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Max number of results to return. */ num?: number; /** * Include results starting at minDistance from a point (2.6 or higher). */ minDistance?: number; /** * Include results up to maxDistance from the point. */ maxDistance?: number; /** * Include a value to multiply the distances with allowing for range conversions. */ distanceMultiplier?: number; /** * Filter the results by a query. */ query?: Object; /** * Perform query using a spherical model. */ spherical?: boolean; /** * The closest location in a document to the center of the search region will always be returned MongoDB > 2.X. */ uniqueDocs?: boolean; /** * Include the location data fields in the top level of the results MongoDB > 2.X. */ includeLocs?: boolean; } /** * A class representation of the BSON Code type. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Code.html */ export declare class Code { /** * * @param code a string or function. * @param scope optional */ constructor(code: string | Function, scope?: Object); /** * A string or function. */ code: string | Function; /** * An optional scope for the function. */ scope: any; } /** * CollectionOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#deleteMany */ export interface CollectionOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; } /** * Create a new OrderedBulkOperation instance (INTERNAL TYPE, do not instantiate directly). * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html */ export interface OrderedBulkOperation { /** * Get the number of operations in the bulk. */ length: number; /** * Execute the ordered bulk operation. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html#execute */ execute(callback: MongoCallback): void; /** * Execute the ordered bulk operation. * @param options optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html#execute */ execute(options?: FSyncOptions): Promise; /** * Execute the ordered bulk operation. * @param options Optional settings. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html#execute */ execute(options: FSyncOptions, callback: MongoCallback): void; /** * Initiate a find operation for an update/updateOne/remove/removeOne/replaceOne. * @param selector The selector for the bulk operation. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html#find */ find(selector: Object): FindOperatorsOrdered; /** * Add a single insert document to the bulk operation. * @param doc The document to insert * @see http://mongodb.github.io/node-mongodb-native/2.1/api/OrderedBulkOperation.html#insert */ insert(doc: Object): OrderedBulkOperation; } /** * BulkWriteResult. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/BulkWriteResult.html */ export interface BulkWriteResult { /** * Did bulk operation correctly execute. */ ok: number; /** * number of inserted documents. */ nInserted: number; /** * number of documents updated logically. */ nUpdated: number; /** * Number of upserted documents. */ nUpserted: number; /** * Number of documents updated physically on disk. */ nModified: number; /** * Number of removed documents. */ nRemoved: number; /** * Return an array of inserted ids. */ getInsertedIds(): Array; /** * Retrieve lastOp if available. */ getLastOp(): Object; /** * Return raw internal result. */ getRawResponse(): Object; /** * Return the upserted id at position x. */ getUpsertedIdAt(index: number): Object; /** * Return an array of upserted ids. */ getUpsertedIds(): Array<{ _id: string; index: number; }>; /** * Retrieve the write concern error if any. */ getWriteConcernError(): WriteConcernError; /** * Returns a specific write error object. */ getWriteErrorAt(index: number): WriteError; /** * Returns the number of write errors off the bulk operation. */ getWriteErrorCount(): number; /** * Retrieve all write errors. */ getWriteErrors(): Array; /** * Returns true if the bulk operation contains a write error. */ hasWriteErrors(): boolean; } /** * Create a new WriteError instance (INTERNAL TYPE, do not instantiate directly). * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/WriteError.html */ export interface WriteError { /** * Write concern error code. */ code: number; /** * Write concern error original bulk operation index. */ index: number; /** * Write concern error message. */ errmsg: string; } /** * Create a new WriteConcernError instance (INTERNAL TYPE, do not instantiate directly). * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/WriteConcernError.html */ export interface WriteConcernError { /** * Write concern error code. */ code: number; /** * Write concern error message. */ errmsg: string; } /** * Create a FindOperatorsOrdered instance (INTERNAL TYPE, do not instantiate directly). * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/FindOperatorsOrdered.html */ export interface FindOperatorsOrdered { /** * Add a remove operation to the bulk operation. */ delete(): OrderedBulkOperation; /** * Add a remove one operation to the bulk operation. */ deleteOne(): OrderedBulkOperation; /** * Add a replace one operation to the bulk operation. */ replaceOne(doc: Object): OrderedBulkOperation; /** * Add a single update document to the bulk operation. */ update(doc: Object): OrderedBulkOperation; /** * Add a single update one document to the bulk operation. */ updateOne(doc: Object): OrderedBulkOperation; /** * Upsert modifier for update bulk operation. */ upsert(): FindOperatorsOrdered; } /** * Create a new UnorderedBulkOperation instance (INTERNAL TYPE, do not instantiate directly). * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html */ export interface UnorderedBulkOperation { /** * Get the number of operations in the bulk. */ length: number; /** * Execute the ordered bulk operation. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html#execute */ execute(callback: MongoCallback): void; /** * Execute the ordered bulk operation. * @param options optional. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html#execute */ execute(options?: FSyncOptions): Promise; /** * Execute the ordered bulk operation. * @param options Optional settings. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html#execute */ execute(options: FSyncOptions, callback: MongoCallback): void; /** * Initiate a find operation for an update/updateOne/remove/removeOne/replaceOne. * @param selector The selector for the bulk operation. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html#find */ find(selector: Object): FindOperatorsUnordered; /** * Add a single insert document to the bulk operation. * @param doc The document to insert. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/UnorderedBulkOperation.html#insert */ insert(doc: Object): UnorderedBulkOperation; } /** * Create a FindOperatorsUnordered instance (INTERNAL TYPE, do not instantiate directly). * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/FindOperatorsUnordered.html */ export interface FindOperatorsUnordered { /** * Get the number of operations in the bulk. */ length: number; /** * Add a remove operation to the bulk operation. */ remove(): UnorderedBulkOperation; /** * Add a remove one operation to the bulk operation. */ removeOne(): UnorderedBulkOperation; /** * Add a replace one operation to the bulk operation. * @param doc The new document to replace the existing one with. */ replaceOne(doc: Object): UnorderedBulkOperation; /** * Add a single update document to the bulk operation. * @param doc Update operations */ update(doc: Object): UnorderedBulkOperation; /** * Add a single update one document to the bulk operation. * @param doc Update operations */ updateOne(doc: Object): UnorderedBulkOperation; /** * Upsert modifier for update bulk operation. */ upsert(): FindOperatorsUnordered; } /** * MongodbFindOneOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#findOne */ export interface MongodbFindOneOptions { /** * Sets the limit of documents returned in the query. */ limit?: number; /** * Set to sort the documents coming back from the query. Array of indexes, [['a', 1]] etc. */ sort?: Array | Object; /** * The fields to return in the query. Object of fields to include or exclude (not both), {'a':1}. */ fields?: Object; /** * Set to skip N documents ahead in your query (useful for pagination). */ skip?: number; /** * Tell the query to use specific indexes in the query. Object of indexes to use, {'_id':1}. */ hint?: Object; /** * Explain the query instead of returning the data. */ explain?: boolean; /** * Snapshot query. */ snapshot?: boolean; /** * Specify if the cursor can timeout. */ timeout?: boolean; /** * Specify if the cursor is tailable. */ tailable?: boolean; /** * Set the batchSize for the getMoreCommand when iterating over the query results. */ batchSize?: number; /** * Only return the index key. */ returnKey?: boolean; /** * Limit the number of items to scan. */ maxScan?: number; /** * Set index bounds. */ min?: number; /** * Set index bounds. */ max?: number; /** * Show disk location of results. */ showDiskLoc?: boolean; /** * You can put a $comment field on a query to make looking in the profiler logs simpler. */ comment?: string; /** * Return document results as raw BSON buffers. */ raw?: boolean; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Specify if the cursor should return partial results when querying against a sharded system. */ partial?: boolean; /** * Number of milliseconds to wait before aborting the query. */ maxTimeMs?: number; } /** * InsertWriteOpResult. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~insertWriteOpResult */ export interface InsertWriteOpResult { /** * The total amount of documents inserted. */ insertedCount: number; /** * All the documents inserted using insertOne/insertMany/replaceOne. * Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany. */ ops: Array; /** * All the generated _id's for the inserted documents. */ insertedIds: Array; /** * The connection object used for the operation. */ connection: any; /** * The raw command result object returned from MongoDB (content might vary by server version). * @param ok Is 1 if the command executed correctly. * @param n The total count of documents inserted. */ result: { ok: number; n: number; }; } /** * CollectionInsertOneOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#insertOne */ export interface CollectionInsertOneOptions { /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Serialize functions on any object. */ serializeFunctions?: boolean; /** * Force server to assign _id values instead of driver. */ forceServerObjectId?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } /** * InsertOneWriteOpResult. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~insertOneWriteOpResult */ export interface InsertOneWriteOpResult { /** * The total amount of documents inserted. */ insertedCount: number; /** * All the documents inserted using insertOne/insertMany/replaceOne. * Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany. */ ops: Array; /** * The driver generated ObjectId for the insert operation. */ insertedId: ObjectID; /** * The connection object used for the operation. */ connection: any; /** * The raw command result object returned from MongoDB (content might vary by server version). * @param ok Is 1 if the command executed correctly. * @param n The total count of documents inserted. */ result: { ok: number; n: number; }; } /** * ParallelCollectionScanOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#parallelCollectionScan */ export interface ParallelCollectionScanOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Set the batchSize for the getMoreCommand when iterating over the query results. */ batchSize?: number; /** * The maximum number of parallel command cursors to return (the number of returned cursors will be in the range 1:numCursors). */ numCursors?: number; /** * Return all BSON documents as Raw Buffer documents. */ raw?: boolean; } /** * ParallelCollectionScanOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#replaceOne */ export interface ReplaceOneOptions { /** * Update operation is an upsert. */ upsert?: boolean; /** * The write concern. */ w?: number | string; /** * The write concern timeout. */ wtimeout?: number; /** * Specify a journal write concern. */ j?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } /** * ParallelCollectionScanOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~updateWriteOpResult */ export interface UpdateWriteOpResult { /** * The raw result returned from MongoDB, field will vary depending on server version. * @param ok Is 1 if the command executed correctly. * @param n The total count of documents scanned. * @param nModified The total count of documents modified. */ result: { ok: number; n: number; nModified: number; }; /** * The connection object used for the operation. */ connection: any; /** * The number of documents that matched the filter. */ matchedCount: number; /** * The number of documents that were modified. */ modifiedCount: number; /** * The number of documents upserted. */ upsertedCount: number; /** * The upserted id. * @param _id The upserted _id returned from the server. */ upsertedId: { _id: ObjectID; }; } /** * ParallelCollectionScanOptions. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#mapReduce */ export interface MapReduceOptions { /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; /** * Sets the output target for the map reduce job. * {inline:1} | {replace:'collectionName'} | {merge:'collectionName'} | {reduce:'collectionName'}. */ out?: Object; /** * Query filter object. */ query?: Object; /** * Sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces. */ sort?: Object; /** * Number of objects to return from collection. */ limit?: number; /** * Keep temporary data. */ keeptemp?: boolean; /** * Finalize function. */ finalize?: Function | string; /** * Can pass in variables that can be access from map/reduce/finalize. */ scope?: Object; /** * It is possible to make the execution stay in JS. Provided in MongoDB > 2.0.X. */ jsMode?: boolean; /** * Provide statistics on job execution time. */ verbose?: boolean; /** * Allow driver to bypass schema validation in MongoDB 3.2 or higher. */ bypassDocumentValidation?: boolean; } /** * WriteOpResult. * * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Collection.html#~WriteOpResult */ export interface WriteOpResult { /** * All the documents inserted using insertOne/insertMany/replaceOne. * Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany. */ ops: Array; /** * The connection object used for the operation. */ connection: any; /** * The command result object. */ result: any; } /** * WriteOpResult. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#~resultCallback */ export declare type CursorResult = any | void | boolean; /** * Creates a new Cursor instance (INTERNAL TYPE, do not instantiate directly). * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html */ export declare class Cursor extends Readable { /** * Cursor query sort setting. */ sortValue: string; /** * Is Cursor able to time out. */ timeout: boolean; /** * Get cursor ReadPreference. */ readPreference: ReadPreference; /** * @param flag The flag to set, must be one of following ['tailable', 'oplogReplay', 'noCursorTimeout', 'awaitData', 'partial']. * @param value The flag boolean value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#addCursorFlag */ addCursorFlag(flag: string, value: boolean): Cursor; /** * @param name The query modifier (must start with $, such as $orderby etc). * @param value The flag boolean value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#addQueryModifier */ addQueryModifier(name: string, value: boolean): Cursor; /** * @param value The batchSize for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#batchSize */ batchSize(value: number): Cursor; /** * Clone the cursor. * still returns the same type. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#clone */ clone(): Cursor; /** * Close the cursor, sending a KillCursor command and emitting close. * The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#close */ close(): Promise; /** * Close the cursor, sending a KillCursor command and emitting close. * The result callback. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#close */ close(callback: MongoCallback): void; /** * Add a comment to the cursor query allowing for tracking the comment in the log. * @param value The comment attached to this query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#comment */ comment(value: string): Cursor; /** * Get the count of documents for this cursor. * @param applySkipLimit Should the count command apply limit and skip settings on the cursor or in the passed in options. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#count */ count(applySkipLimit: boolean, callback: MongoCallback): void; /** * Get the count of documents for this cursor. * @param applySkipLimit Should the count command apply limit and skip settings on the cursor or in the passed in options. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#count */ count(applySkipLimit: boolean, options?: CursorCommentOptions): Promise; /** * Get the count of documents for this cursor. * @param applySkipLimit Should the count command apply limit and skip settings on the cursor or in the passed in options. * @param options Optional settings. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#count */ count(applySkipLimit: boolean, options: CursorCommentOptions, callback: MongoCallback): void; /** * Execute the explain for the cursor. * returns Promise if no callback passed. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#explain */ explain(): Promise; /** * Execute the explain for the cursor. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#explain */ explain(callback: MongoCallback): void; /** * Set the cursor query. * @param filter The filter object used for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#filter */ filter(filter: Object): Cursor; /** * Iterates over all the documents for this cursor using the iterator, callback pattern. * @param iterator The iteration callback. * @param callback The end callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/Cursor.html#forEach */ forEach(iterator: IteratorCallback, callback: EndCallback): void; forEach(iterator: IteratorCallback): Promise; /** * Check if there is any document still available in the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#hasNext */ hasNext(): Promise; /** * Check if there is any document still available in the cursor. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#hasNext */ hasNext(callback: MongoCallback): void; /** * Set the cursor hint. * @param hint If specified, then the query system will only consider plans using the hinted index. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#hint */ hint(hint: Object): Cursor; /** * Is the cursor closed. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#isClosed */ isClosed(): boolean; /** * Set the limit for the cursor. * @param value The limit for the cursor query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#limit */ limit(value: number): Cursor; /** * SMap all documents using the provided function. * @param transform The mapping transformation method. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#map */ map(transform: Function): Cursor; /** * Set the cursor max. * @param max Specify a $max value to specify the exclusive upper bound for a specific index in * order to constrain the results of find(). The $max specifies the upper bound for * all keys of a specific index in order. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#max */ max(max: number): Cursor; /** * Set a maxAwaitTimeMS on a tailing cursor query to allow to customize the * timeout value for the option awaitData (Only supported on MongoDB 3.2 or higher, ignored otherwise). * @param value Number of milliseconds to wait before aborting the tailed query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#maxAwaitTimeMS */ maxAwaitTimeMS(value: number): Cursor; /** * Set the cursor maxScan. * @param maxScan Constrains the query to only scan the specified number of documents when fulfilling the query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#maxScan */ maxScan(maxScan: Object): Cursor; /** * Set a maxTimeMS on the cursor query, allowing for hard timeout limits on queries (Only supported on MongoDB 2.6 or higher). * @param value Number of milliseconds to wait before aborting the query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#maxTimeMS */ maxTimeMS(value: number): Cursor; /** * Set the cursor min. * @param min 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. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#min */ min(min: number): Cursor; /** * Get the next available document from the cursor, returns null if no more documents are available. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#next */ next(): Promise; /** * Get the next available document from the cursor, returns null if no more documents are available. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#next */ next(callback: MongoCallback): void; /** * Sets a field projection for the query. * @param value The field projection object. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#project */ project(value: Object): Cursor; /** * The read() method pulls some data out of the internal buffer and returns it. * If there is no data available, then it will return null. * @param size Optional argument to specify how much data to read. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#read */ read(size: number): string | Buffer | void; /** * Set the cursor returnKey. * @param returnKey Only return the index field or fields for the results of the query. If $returnKey is set * to true and the query does not use an index to perform the read operation, * the returned documents will not contain any fields. Use one of the following forms: * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#next */ returnKey(returnKey: Object): Cursor; /** * Resets the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#rewind */ rewind(): void; /** * Set a node.js specific cursor option. * @param field The cursor option to set ['numberOfRetries', 'tailableRetryInterval']. * @param value The field value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#setCursorOption */ setCursorOption(field: string, value: Object): Cursor; /** * Set the ReadPreference for the cursor. * @param readPreference The new read preference for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#setReadPreference */ setReadPreference(readPreference: string | ReadPreference): Cursor; /** * Set the cursor showRecordId. * @param showRecordId The $showDiskLoc option has now been deprecated and replaced with the * showRecordId field. $showDiskLoc will still be accepted for OP_QUERY stye find. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#showRecordId */ showRecordId(showRecordId: Object): Cursor; /** * Set the skip for the cursor. * @param value The skip for the cursor query. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#skip */ skip(value: number): Cursor; /** * Set the cursor snapshot. * @param snapshot The $snapshot operator prevents the cursor from returning a document more than * once because an intervening write operation results in a move of the document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#snapshot */ snapshot(snapshot: Object): Cursor; /** * Sets the sort order of the cursor query. * @param keyOrList The key or keys set for the sort. * @param direction The direction of the sorting (1 or -1). * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#sort */ sort(keyOrList: string | Object[] | Object, direction?: number): Cursor; /** * Return a modified Readable stream including a possible transform method. * @param options Optional settings. * @param transform A transformation method applied to each document emitted by the stream. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#stream */ stream(options?: { transform?: Function; }): Cursor; /** * 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 contain partial results when this cursor had * been previously accessed. In that case, cursor.rewind() can be used to reset the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#toArray */ toArray(): Promise; /** * 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 contain partial results when this cursor had * been previously accessed. In that case, cursor.rewind() can be used to reset the cursor. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#toArray */ toArray(callback: MongoCallback): void; /** * This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some * data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party. * @param stream Chunk of data to unshift onto the read queue. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#unshift */ unshift(stream: Buffer | string): void; } /** * Get the count of documents for this cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#count */ export interface CursorCommentOptions { /** * The number of documents to skip. */ skip?: number; /** * The maximum amounts to count before aborting. */ limit?: number; /** * Number of miliseconds to wait before aborting the query. */ maxTimeMS?: number; /** * An index name hint for the query. */ hint?: string; /** * The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, * ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST). */ readPreference?: ReadPreference | string; } /** * Creates a new Change Stream instance. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html */ export declare class ChangeStream extends Readable { constructor(changeDomain: MongoClient | Db | Collection, pipeline: Object[], options?: ChangeStreamOptions); /** * Close the Change Stream. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#close */ close(): Promise; /** * Close the Change Stream. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#close */ close(callback: MongoCallback): void; /** * Check if there is any document still available in the Change Stream. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#hasNext */ hasNext(): Promise; /** * Check if there is any document still available in the Change Stream. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#hasNext */ hasNext(callback: MongoCallback): void; /** * Is the cursor closed. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#isClosed */ isClosed(): boolean; /** * Get the next available document from the Change Stream, returns null if no more documents are available. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#next */ next(): Promise; /** * Get the next available document from the Change Stream, returns null if no more documents are available. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#next */ next(callback: MongoCallback): void; /** * Return a modified Readable stream including a possible transform method. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ChangeStream.html#stream */ stream(options?: { transform: Function; }): Cursor; } /** * ChangeStreamOptions */ export interface ChangeStreamOptions { /** * Allowed values: ‘default’, ‘updateLookup’. * When set to ‘updateLookup’, the change stream will include both a delta describing the changes to the document, * as well as a copy of the entire document that was changed from some time after the change occurred. */ fullDocument?: string; /** * The maximum amount of time for the server to wait on new documents to satisfy a change stream query */ maxAwaitTimeMS?: number; /** * Specifies the logical starting point for the new change stream. * This should be the _id field from a previously returned change stream document. */ resumeAfter?: Object; /** * The number of documents to return per batch. */ batchSize?: number; /** * Specify collation settings for operation. */ collation?: CollationDocument; /** * The read preference. Defaults to the read preference of the database or collection. */ readPreference?: ReadPreference; } /** * CollationDocument */ export interface CollationDocument { locale: string; strength?: number; caseLevel?: boolean; caseFirst?: string; numericOrdering?: boolean; alternate?: string; maxVariable?: string; backwards?: boolean; normalization?: boolean; } /** * A class representing a client session on the server. * WARNING: not meant to be instantiated directly. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html */ export interface ClientSession extends EventEmitter { /** * The server id associated with this session */ id: any; /** * Aborts the currently active transaction in this session. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#abortTransaction */ abortTransaction(): Promise; /** * Aborts the currently active transaction in this session. * @param callback Optional callback for completion of this operation * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#abortTransaction */ abortTransaction(callback?: MongoCallback): Promise; /** * Advances the operationTime for a ClientSession. * @param operationTime the BSON.Timestamp of the operation type it is desired to advance to. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#advanceOperationTime */ advanceOperationTime(operationTime: Timestamp): void; /** * Commits the currently active transaction in this session. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#commitTransaction */ commitTransaction(): Promise; /** * Commits the currently active transaction in this session. * @param callback Optional callback for completion of this operation. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#commitTransaction */ commitTransaction(callback?: MongoCallback): Promise; /** * Ends this session on the server. * @param callback Optional callback for completion of this operation. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#endSession */ endSession(callback?: MongoCallback): void; /** * Ends this session on the server. * @param options Optional settings. Currently reserved for future use. * @param callback Optional callback for completion of this operation. * @see @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#endSession */ endSession(options?: any, callback?: MongoCallback): void; /** * Used to determine if this session equals another. * @param session A class representing a client session on the server. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#equals */ equals(session: ClientSession): boolean; /** * Increment the transaction number on the internal ServerSession. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#incrementTransactionNumber */ incrementTransactionNumber(): void; /** * Check this session is currently in a transaction or not. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#inTransaction */ inTransaction(): boolean; /** * Starts a new transaction with the given options. * @param options Optional settings. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#startTransaction */ startTransaction(options?: TransactionOptions): void; } /** * Options to pass when creating a Client Session * @see http://mongodb.github.io/node-mongodb-native/3.1/api/global.html#SessionOptions */ export interface SessionOptions { /** * Whether causal consistency should be enabled on this session */ causalConsistency?: boolean; /** * The default TransactionOptions to use for transactions started on this session. */ defaultTransactionOptions?: TransactionOptions; } /** * TransactionOptions */ export interface TransactionOptions { readConcern?: ReadConcern; writeConcern?: WriteConcern; readPreference?: ReadPreference; } /** * MongoClientCommonOption */ export interface MongoClientCommonOption { /** * Do not make the db an event listener to the original connection. */ noListener?: boolean; /** * Control if you want to return a cached instance or have a new one created */ returnNonCachedInstance?: boolean; } /** * @see http://mongodb.github.io/node-mongodb-native/3.1/api/global.html#ReadConcern */ export declare type ReadConcernLevel = "local" | "available" | "majority" | "linearizable" | "snapshot"; /** * The MongoDB ReadConcern, which allows for control of the consistency and isolation properties * of the data read from replica sets and replica set shards. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/global.html#ReadConcern */ export interface ReadConcern { level?: ReadConcernLevel; } /** * A MongoDB WriteConcern, which describes the level of acknowledgement * requested from MongoDB for write operations. * @see http://mongodb.github.io/node-mongodb-native/3.1/api/global.html#WriteConcern */ export interface WriteConcern { /** * requests acknowledgement that the write operation has * propagated to a specified number of mongod hosts */ w?: number | "majority" | string; /** * requests acknowledgement from MongoDB that the write operation has * been written to the journal */ j?: boolean; /** * a time limit, in milliseconds, for the write concern */ wtimeout?: number; } /** * The callback format for the forEach iterator method. * @param doc An emitted document for the iterator. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#~iteratorCallback */ export interface IteratorCallback { (doc: T): void; } /** * The callback error format for the forEach iterator method. * @param error An error instance representing the error during the execution. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/Cursor.html#~endCallback */ export interface EndCallback { (error: MongoError): void; } /** * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#~resultCallback */ export declare type AggregationCursorResult = any | void; /** * Creates a new Aggregation Cursor instance (INTERNAL TYPE, do not instantiate directly), * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html */ export interface AggregationCursor extends Readable { /** * Set the batch size for the cursor. * @param value The batchSize for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#batchSize */ batchSize(value: number): AggregationCursor; /** * Clone the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#clone */ clone(): AggregationCursor; /** * Close the cursor, sending a AggregationCursor command and emitting close. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#close */ close(): Promise; /** * Close the cursor, sending a AggregationCursor command and emitting close. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#close */ close(callback: MongoCallback): void; /** * Iterates over all the documents for this cursor. As with {cursor.toArray}, not all of the elements will * be iterated if this cursor had been previouly accessed. In that case, {cursor.rewind} can be used to reset * the cursor. However, unlike {cursor.toArray}, the cursor will only hold a maximum of batch size elements * at any given time if batch size is specified. Otherwise, the caller is responsible for making sure * that the entire result can fit the memory. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#each */ each(callback: MongoCallback): void; /** * Execute the explain for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#explain */ explain(): Promise; /** * Execute the explain for the cursor. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#explain */ explain(callback: MongoCallback): void; /** * Add a geoNear stage to the aggregation pipeline. * @param document The geoNear stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#geoNear */ geoNear(document: Object): AggregationCursor; /** * Add a group stage to the aggregation pipeline. * @param document The group stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#group */ group(document: Object): AggregationCursor; /** * Is the cursor closed. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#isClosed */ isClosed(): boolean; /** * Add a limit stage to the aggregation pipeline. * @param value The state limit value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#limit */ limit(value: number): AggregationCursor; /** * Add a match stage to the aggregation pipeline. * @param document The match stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#match */ match(document: Object): AggregationCursor; /** * Add a maxTimeMS stage to the aggregation pipeline. * @param value The state maxTimeMS value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#maxTimeMS */ maxTimeMS(value: number): AggregationCursor; /** * Get the next available document from the cursor, returns null if no more documents are available. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#next */ next(): Promise; /** * Get the next available document from the cursor, returns null if no more documents are available. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#next */ next(callback: MongoCallback): void; /** * Add a out stage to the aggregation pipeline. * @param destination The destination name. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#out */ out(destination: string): AggregationCursor; /** * Add a project stage to the aggregation pipeline. * @param document The project stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#project */ project(document: Object): AggregationCursor; /** * The read() method pulls some data out of the internal buffer and returns it. * If there is no data available, then it will return null. * @param size Optional argument to specify how much data to read. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#read */ read(size: number): string | Buffer | void; /** * Add a redact stage to the aggregation pipeline. * @param document The redact stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#redact */ redact(document: Object): AggregationCursor; /** * Resets the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#rewind */ rewind(): AggregationCursor; /** * Add a skip stage to the aggregation pipeline. * @param value The state skip value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#setEncoding */ skip(value: number): AggregationCursor; /** * Add a sort stage to the aggregation pipeline. * @param document The sort stage document. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#sort */ sort(document: Object): AggregationCursor; /** * 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 contain partial * results when this cursor had been previouly accessed. In that case, * cursor.rewind() can be used to reset the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#toArray */ toArray(): Promise; /** * 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 contain partial * results when this cursor had been previouly accessed. In that case, * cursor.rewind() can be used to reset the cursor. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#toArray */ toArray(callback: MongoCallback): void; /** * This is useful in certain cases where a stream is being consumed by a parser, * which needs to "un-consume" some data that it has optimistically pulled out of the source, * so that the stream can be passed on to some other party. * @param stream Chunk of data to unshift onto the read queue. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#unshift */ unshift(stream: Buffer | string): void; /** * Add a unwind stage to the aggregation pipeline. * @param field The unwind field name. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/AggregationCursor.html#unwind */ unwind(field: string): AggregationCursor; } /** * CommandCursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html */ export interface CommandCursor extends Readable { /** * Set the batch size for the cursor. * @param value The batchSize for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#batchSize */ batchSize(value: number): CommandCursor; /** * Clone the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#clone */ clone(): CommandCursor; /** * Close the cursor, sending a KillCursor command and emitting close. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#close */ close(): Promise; /** * Close the cursor, sending a KillCursor command and emitting close. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#close */ close(callback: MongoCallback): void; /** * Each * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#each */ each(callback: MongoCallback): void; /** * Is the cursor closed. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#isClosed */ isClosed(): boolean; /** * Add a maxTimeMS stage to the aggregation pipeline. * @param value The state maxTimeMS value. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#maxTimeMS */ maxTimeMS(value: number): CommandCursor; /** * Get the next available document from the cursor, returns null if no more documents are available. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#next */ next(): Promise; /** * Get the next available document from the cursor, returns null if no more documents are available. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#next */ next(callback: MongoCallback): void; /** * The read() method pulls some data out of the internal buffer and returns it. * If there is no data available, then it will return null. * @param size Optional argument to specify how much data to read. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#read */ read(size: number): string | Buffer | void; /** * Resets the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#rewind */ rewind(): CommandCursor; /** * Set the ReadPreference for the cursor. * @param readPreference The new read preference for the cursor. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#setReadPreference */ setReadPreference(readPreference: string | ReadPreference): CommandCursor; /** * 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 contain partial results when this cursor had been previouly accessed. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#toArray */ toArray(): Promise; /** * 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 contain partial results when this cursor had been previouly accessed. * @param callback The result callback. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#toArray */ toArray(callback: MongoCallback): void; /** * This is useful in certain cases where a stream is being consumed by a parser, * which needs to "un-consume" some data that it has optimistically pulled out of the source, * so that the stream can be passed on to some other party. * @param stream Chunk of data to unshift onto the read queue. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/CommandCursor.html#unshift */ unshift(stream: Buffer | string): void; } /** * GridFSBucket. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html */ export declare class GridFSBucket { /** * * @param db A db handle. * @param options Optional settings. */ constructor(db: Db, options?: GridFSBucketOptions); /** * Deletes a file with the given id. * @param id The id of the file doc * @param callback The result callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#delete */ delete(id: ObjectID, callback?: GridFSBucketErrorCallback): void; /** * Removes this bucket's files collection, followed by its chunks collection. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#drop */ drop(callback?: GridFSBucketErrorCallback): void; /** * Convenience wrapper around find on the files collection * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#find */ find(filter?: Object, options?: GridFSBucketFindOptions): Cursor; /** * Returns a readable stream (GridFSBucketReadStream) for streaming file. * @param id The id of the file doc. * @param options Optional settings * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#openDownloadStream */ openDownloadStream(id: ObjectID, options?: { start: number; end: number; }): GridFSBucketReadStream; /** * Returns a readable stream (GridFSBucketReadStream) for streaming file * @param filename The id of the file doc * @param options Optional settings * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#openDownloadStreamByName */ openDownloadStreamByName(filename: string, options?: { revision: number; start: number; end: number; }): GridFSBucketReadStream; /** * Returns a writable stream (GridFSBucketWriteStream) for writing buffers to GridFS. * The stream's 'id' property contains the resulting file's id. * @param filename The value of the 'filename' key in the files doc. * @param options Optional settings * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#openUploadStream */ openUploadStream(filename: string, options?: GridFSBucketOpenUploadStreamOptions): GridFSBucketWriteStream; /** * Returns a writable stream (GridFSBucketWriteStream) for writing buffers to GridFS for a custom file id. * The stream's 'id' property contains the resulting file's id. * @param id A custom id used to identify the file. * @param filename The value of the 'filename' key in the files doc. * @param options Optional settings * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#openUploadStreamWithId */ openUploadStreamWithId(id: string | number | Object, filename: string, options?: GridFSBucketOpenUploadStreamOptions): GridFSBucketWriteStream; /** * Renames the file with the given _id to the given string. * @param id the id of the file to rename. * @param filename new name for the file. * @param callback The result callback * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#rename */ rename(id: ObjectID, filename: string, callback?: GridFSBucketErrorCallback): void; } /** * Constructor for a streaming GridFS interface. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html */ export interface GridFSBucketOptions { /** * The 'files' and 'chunks' collections will be prefixed with the bucket name followed by a dot. */ bucketName?: string; /** * Number of bytes stored in each chunk. Defaults to 255KB. */ chunkSizeBytes?: number; /** * Optional write concern to be passed to write operations, for instance { w: 1 }. */ writeConcern?: WriteConcern; /** * Optional read preference to be passed to read operations. */ ReadPreference?: ReadPreference; } /** * GridFSBucketErrorCallback. * @param err An error instance representing any errors that occurred. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#~errorCallback */ export interface GridFSBucketErrorCallback { (err?: MongoError): void; } /** * GridFSBucketFindOptions. * @see http://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#find */ export interface GridFSBucketFindOptions { /** * Optional batch size for cursor. */ batchSize?: number; /** * Optional limit for cursor. */ limit?: number; /** * Optional maxTimeMS for cursor. */ maxTimeMS?: number; /** * Optionally set cursor's noCursorTimeout flag. */ noCursorTimeout?: boolean; /** * Optional skip for cursor. */ skip?: number; /** * Optional sort for cursor. */ sort?: Object; } /** * GridFSBucketOpenUploadStreamOptions. * @see https://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucket.html#openUploadStream */ export interface GridFSBucketOpenUploadStreamOptions { /** * Optional overwrite this bucket's chunkSizeBytes for this file. */ chunkSizeBytes?: number; /** * Optional object to store in the file document's metadata field. */ metadata?: Object; /** * Optional string to store in the file document's contentType field. */ contentType?: string; /** * Optional array of strings to store in the file document's aliases field. */ aliases?: Array; } /** * GridFSBucketReadStream. * @see https://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucketReadStream.html */ export declare class GridFSBucketReadStream extends Readable { /** * * @param chunks Handle for chunks collection. * @param files Handle for files collection. * @param readPreference The read preference to use. * @param filter The query to use to find the file document. * @param options Optional settings. */ constructor(chunks: Collection, files: Collection, readPreference: Object, filter: Object, options?: GridFSBucketReadStreamOptions); } /** * GridFSBucketReadStreamOptions. * @see https://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucketReadStream.html */ export interface GridFSBucketReadStreamOptions { /** * Optional sort for the file find query. */ sort?: number; /** * Optional skip for the file find query. */ skip?: number; /** * Optional 0-based offset in bytes to start streaming from. */ start?: number; /** * Optional 0-based offset in bytes to stop streaming before. */ end?: number; } /** * GridFSBucketWriteStream * @see https://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucketWriteStream.html */ export declare class GridFSBucketWriteStream extends Writable { /** * * @param bucket Handle for this stream's corresponding bucket. * @param filename The value of the 'filename' key in the files doc. * @param options Optional settings. */ constructor(bucket: GridFSBucket, filename: string, options?: GridFSBucketWriteStreamOptions); } /** * GridFSBucketWriteStreamOptions. * @see https://mongodb.github.io/node-mongodb-native/2.1/api/GridFSBucketWriteStream.html */ export interface GridFSBucketWriteStreamOptions { /** * Custom file id for the GridFS file. */ id?: string | number | Object; /** * The chunk size to use, in bytes. */ chunkSizeBytes?: number; /** * The write concern. */ w?: number; /** * The write concern timeout. */ wtimeout?: number; /** * The journal write concern. */ j?: number; }