diff --git a/types/mongodb/index.d.ts b/types/mongodb/index.d.ts index 07b36603d4..e7405ca7ef 100644 --- a/types/mongodb/index.d.ts +++ b/types/mongodb/index.d.ts @@ -707,8 +707,8 @@ export interface Collection { findOneAndReplace(filter: FilterQuery, replacement: Object, options: FindOneAndReplaceOption, callback: MongoCallback>): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOneAndUpdate */ findOneAndUpdate(filter: FilterQuery, update: Object, callback: MongoCallback>): void; - findOneAndUpdate(filter: FilterQuery, update: Object, options?: FindOneAndReplaceOption): Promise>; - findOneAndUpdate(filter: FilterQuery, update: Object, options: FindOneAndReplaceOption, callback: MongoCallback>): void; + findOneAndUpdate(filter: FilterQuery, update: Object, options?: FindOneAndUpdateOption): Promise>; + findOneAndUpdate(filter: FilterQuery, update: Object, options: FindOneAndUpdateOption, callback: MongoCallback>): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#geoHaystackSearch */ geoHaystackSearch(x: number, y: number, callback: MongoCallback): void; geoHaystackSearch(x: number, y: number, options?: GeoHaystackSearchOptions): Promise; @@ -804,17 +804,17 @@ export interface Collection { /** @deprecated use updateOne, updateMany or bulkWrite */ update(filter: FilterQuery, update: UpdateQuery | TSchema, callback: MongoCallback): void; /** @deprecated use updateOne, updateMany or bulkWrite */ - update(filter: FilterQuery, update: UpdateQuery | TSchema, options?: ReplaceOneOptions & { multi?: boolean }): Promise; + update(filter: FilterQuery, update: UpdateQuery | TSchema, options?: UpdateOneOptions & { multi?: boolean }): Promise; /** @deprecated use updateOne, updateMany or bulkWrite */ - update(filter: FilterQuery, update: UpdateQuery | TSchema, options: ReplaceOneOptions & { multi?: boolean }, callback: MongoCallback): void; + update(filter: FilterQuery, update: UpdateQuery | TSchema, options: UpdateOneOptions & { multi?: boolean }, callback: MongoCallback): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateMany */ updateMany(filter: FilterQuery, update: UpdateQuery | TSchema, callback: MongoCallback): void; - updateMany(filter: FilterQuery, update: UpdateQuery | TSchema, options?: CommonOptions & { upsert?: boolean }): Promise; - updateMany(filter: FilterQuery, update: UpdateQuery | TSchema, options: CommonOptions & { upsert?: boolean }, callback: MongoCallback): void; + updateMany(filter: FilterQuery, update: UpdateQuery | TSchema, options?: UpdateManyOptions): Promise; + updateMany(filter: FilterQuery, update: UpdateQuery | TSchema, options: UpdateManyOptions, callback: MongoCallback): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateOne */ updateOne(filter: FilterQuery, update: UpdateQuery | TSchema, callback: MongoCallback): void; - updateOne(filter: FilterQuery, update: UpdateQuery | TSchema, options?: ReplaceOneOptions): Promise; - updateOne(filter: FilterQuery, update: UpdateQuery | TSchema, options: ReplaceOneOptions, callback: MongoCallback): void; + updateOne(filter: FilterQuery, update: UpdateQuery | TSchema, options?: UpdateOneOptions): Promise; + updateOne(filter: FilterQuery, update: UpdateQuery | TSchema, options: UpdateOneOptions, callback: MongoCallback): void; /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#watch */ watch(pipeline?: Object[], options?: ChangeStreamOptions & { startAtClusterTime?: Timestamp, session?: ClientSession }): ChangeStream; } @@ -1158,13 +1158,17 @@ export interface FindAndModifyWriteOpResultObject { } /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOneAndReplace */ -export interface FindOneAndReplaceOption { +export interface FindOneAndReplaceOption extends CommonOptions { projection?: Object; sort?: Object; maxTimeMS?: number; upsert?: boolean; returnOriginal?: boolean; - session?: ClientSession; +} + +/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOneAndUpdate */ +export interface FindOneAndUpdateOption extends FindOneAndReplaceOption { + arrayFilters?: Object[]; } /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#geoHaystackSearch */ @@ -1356,6 +1360,17 @@ export interface ReplaceOneOptions extends CommonOptions { bypassDocumentValidation?: boolean; } +/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateOne */ +export interface UpdateOneOptions extends ReplaceOneOptions { + arrayFilters?: Object[]; +} + +/** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#updateMany */ +export interface UpdateManyOptions extends CommonOptions { + upsert?: boolean; + arrayFilters: Object[]; +} + /** http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#~updateWriteOpResult */ export interface UpdateWriteOpResult { result: { ok: number, n: number, nModified: number };