Skip to content

Commit

Permalink
gridfs
Browse files Browse the repository at this point in the history
  • Loading branch information
HanaPearlman committed Nov 18, 2020
1 parent abdefbe commit a5362ff
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 31 deletions.
38 changes: 19 additions & 19 deletions lib/collection.js
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ Collection.prototype.find = deprecateOptions(
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=true] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -532,7 +532,7 @@ Collection.prototype.insertOne = function(doc, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=true] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -600,7 +600,7 @@ Collection.prototype.insertMany = function(docs, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -682,7 +682,7 @@ Collection.prototype.bulkWrite = function(operations, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.forceServerObjectId=false] Force server to assign _id values instead of driver.
* @param {boolean} [options.bypassDocumentValidation=false] Allow driver to bypass schema validation in MongoDB 3.2 or higher.
Expand Down Expand Up @@ -740,7 +740,7 @@ Collection.prototype.insert = deprecate(function(docs, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -778,7 +778,7 @@ Collection.prototype.updateOne = function(filter, update, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -817,7 +817,7 @@ Collection.prototype.replaceOne = function(filter, doc, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -851,7 +851,7 @@ Collection.prototype.updateMany = function(filter, update, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.upsert=false] Update operation is an upsert.
* @param {boolean} [options.multi=false] Update one/all documents with operation.
* @param {boolean} [options.bypassDocumentValidation=false] Allow driver to bypass schema validation in MongoDB 3.2 or higher.
Expand Down Expand Up @@ -908,7 +908,7 @@ Collection.prototype.update = deprecate(function(selector, update, options, call
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -943,7 +943,7 @@ Collection.prototype.removeOne = Collection.prototype.deleteOne;
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.checkKeys=false] If true, will throw if bson documents start with `$` or include a `.` in any key value
* @param {boolean} [options.serializeFunctions=false] Serialize functions on any object.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
Expand Down Expand Up @@ -978,7 +978,7 @@ Collection.prototype.removeMany = Collection.prototype.deleteMany;
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.single=false] Removes the first document found.
* @param {ClientSession} [options.session] optional session to use for this operation
* @param {Collection~writeOpCallback} [callback] The command result callback
Expand Down Expand Up @@ -1012,7 +1012,7 @@ Collection.prototype.remove = deprecate(function(selector, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {ClientSession} [options.session] optional session to use for this operation
* @param {Collection~writeOpCallback} [callback] The command result callback
* @return {Promise} returns Promise if no callback passed
Expand Down Expand Up @@ -1199,7 +1199,7 @@ Collection.prototype.isCapped = function(options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.unique=false] Creates an unique index.
* @param {boolean} [options.sparse=false] Creates a sparse index.
* @param {boolean} [options.background=false] Creates the index in the background, yielding whenever possible.
Expand Down Expand Up @@ -1313,7 +1313,7 @@ Collection.prototype.createIndexes = function(indexSpecs, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {ClientSession} [options.session] optional session to use for this operation
* @param {number} [options.maxTimeMS] Number of milliseconds to wait before aborting the query.
* @param {Collection~resultCallback} [callback] The command result callback
Expand Down Expand Up @@ -1412,7 +1412,7 @@ Collection.prototype.listIndexes = function(options) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.unique=false] Creates an unique index.
* @param {boolean} [options.sparse=false] Creates a sparse index.
* @param {boolean} [options.background=false] Creates the index in the background, yielding whenever possible.
Expand Down Expand Up @@ -1766,7 +1766,7 @@ Collection.prototype.findOneAndUpdate = function(filter, update, options, callba
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.remove=false] Set to true to remove the object before returning.
* @param {boolean} [options.upsert=false] Perform an upsert operation.
* @param {boolean} [options.new=false] Set to true if you want to return the modified object rather than the original. Ignored for remove.
Expand Down Expand Up @@ -1817,7 +1817,7 @@ function _findAndModify(query, sort, doc, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {ClientSession} [options.session] optional session to use for this operation
* @param {Collection~resultCallback} [callback] The command result callback
* @return {Promise} returns Promise if no callback passed
Expand Down Expand Up @@ -2144,7 +2144,7 @@ Collection.prototype.mapReduce = function(map, reduce, options, callback) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
* @param {ClientSession} [options.session] optional session to use for this operation
* @return {UnorderedBulkOperation}
Expand All @@ -2168,7 +2168,7 @@ Collection.prototype.initializeUnorderedBulkOp = function(options) {
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object} [options.writeConcern] Specify write concern settings.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {ClientSession} [options.session] optional session to use for this operation
* @param {boolean} [options.ignoreUndefined=false] Specify if the BSON serializer should ignore undefined fields.
* @param {OrderedBulkOperation} callback The command result callback
Expand Down
7 changes: 4 additions & 3 deletions lib/gridfs-stream/upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ module.exports = GridFSBucketWriteStream;
* @param {object} [options] Optional settings.
* @param {string|number|object} [options.id] Custom file id for the GridFS file.
* @param {number} [options.chunkSizeBytes] The chunk size to use, in bytes
* @param {number} [options.w] The write concern
* @param {number} [options.wtimeout] The write concern timeout
* @param {number} [options.j] The journal write concern
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {boolean} [options.disableMD5=false] If true, disables adding an md5 field to file data
* @fires GridFSBucketWriteStream#error
* @fires GridFSBucketWriteStream#finish
Expand Down
22 changes: 13 additions & 9 deletions lib/gridfs/grid_store.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,11 @@ const deprecationFn = deprecate(() => {},
* @param {string} [filename] optional filename for this file, no unique constrain on the field
* @param {string} mode set the mode for this file.
* @param {object} [options] Optional settings.
* @param {(number|string)} [options.w] The write concern.
* @param {number} [options.wtimeout] The write concern timeout.
* @param {boolean} [options.j=false] Specify a journal write concern.
* @param {boolean} [options.fsync=false] Specify a file sync write concern.
* @param {(number|string)} [options.w] DEPRECATED: The write concern. Use writeConcern instead.
* @param {number} [options.wtimeout] DEPRECATED: The write concern timeout. Use writeConcern instead.
* @param {boolean} [options.j=false] DEPRECATED: Specify a journal write concern. Use writeConcern instead.
* @param {boolean} [options.fsync=false] DEPRECATED: Specify a file sync write concern. Use writeConcern instead.
* @param {object|WriteConcern} [options.writeConcern] Specify write concern settings.
* @param {string} [options.root] Root collection to use. Defaults to **{GridStore.DEFAULT_ROOT_COLLECTION}**.
* @param {string} [options.content_type] MIME type of the file. Defaults to **{GridStore.DEFAULT_CONTENT_TYPE}**.
* @param {number} [options.chunk_size=261120] Size for the chunk. Defaults to **{Chunk.DEFAULT_CHUNK_SIZE}**.
Expand Down Expand Up @@ -1572,12 +1573,13 @@ var _writeNormal = function(self, data, close, options, callback) {
* @ignore
*/
var _setWriteConcernHash = function(options) {
const baseOptions = Object.assign(options, options.writeConcern);
var finalOptions = {};
if (options.w != null) finalOptions.w = options.w;
if (options.journal === true) finalOptions.j = options.journal;
if (options.j === true) finalOptions.j = options.j;
if (options.fsync === true) finalOptions.fsync = options.fsync;
if (options.wtimeout != null) finalOptions.wtimeout = options.wtimeout;
if (baseOptions.w != null) finalOptions.w = baseOptions.w;
if (baseOptions.journal === true) finalOptions.j = baseOptions.journal;
if (baseOptions.j === true) finalOptions.j = baseOptions.j;
if (baseOptions.fsync === true) finalOptions.fsync = baseOptions.fsync;
if (baseOptions.wtimeout != null) finalOptions.wtimeout = baseOptions.wtimeout;
return finalOptions;
};

Expand All @@ -1591,6 +1593,7 @@ var _getWriteConcern = function(self, options) {

// Local options verification
if (
options.writeConcern != null ||
options.w != null ||
typeof options.j === 'boolean' ||
typeof options.journal === 'boolean' ||
Expand All @@ -1602,6 +1605,7 @@ var _getWriteConcern = function(self, options) {
} else if (typeof options.safe === 'boolean') {
finalOptions = { w: options.safe ? 1 : 0 };
} else if (
self.options.writeConcern != null ||
self.options.w != null ||
typeof self.options.j === 'boolean' ||
typeof self.options.journal === 'boolean' ||
Expand Down

0 comments on commit a5362ff

Please sign in to comment.