Changes
This commit is contained in:
16
node_modules/mongoose/lib/schema.js
generated
vendored
16
node_modules/mongoose/lib/schema.js
generated
vendored
@@ -69,7 +69,7 @@ let id = 0;
|
||||
* - [typePojoToMixed](/docs/guide.html#typePojoToMixed) - boolean - defaults to true. Determines whether a type set to a POJO becomes a Mixed path or a Subdocument
|
||||
* - [useNestedStrict](/docs/guide.html#useNestedStrict) - boolean - defaults to false
|
||||
* - [validateBeforeSave](/docs/guide.html#validateBeforeSave) - bool - defaults to `true`
|
||||
* - [versionKey](/docs/guide.html#versionKey): string - defaults to "__v"
|
||||
* - [versionKey](/docs/guide.html#versionKey): string or object - defaults to "__v"
|
||||
* - [collation](/docs/guide.html#collation): object - defaults to null (which means use no collation)
|
||||
* - [selectPopulatedPaths](/docs/guide.html#selectPopulatedPaths): boolean - defaults to `true`
|
||||
* - [skipVersioning](/docs/guide.html#skipVersioning): object - paths to exclude from versioning
|
||||
@@ -400,9 +400,11 @@ Schema.prototype.defaultOptions = function(options) {
|
||||
const baseOptions = get(this, 'base.options', {});
|
||||
options = utils.options({
|
||||
strict: 'strict' in baseOptions ? baseOptions.strict : true,
|
||||
strictQuery: 'strictQuery' in baseOptions ? baseOptions.strictQuery : false,
|
||||
bufferCommands: true,
|
||||
capped: false, // { size, max, autoIndexId }
|
||||
versionKey: '__v',
|
||||
optimisticConcurrency: false,
|
||||
discriminatorKey: '__t',
|
||||
minimize: true,
|
||||
autoIndex: null,
|
||||
@@ -422,6 +424,10 @@ Schema.prototype.defaultOptions = function(options) {
|
||||
options.read = readPref(options.read);
|
||||
}
|
||||
|
||||
if (options.optimisticConcurrency && !options.versionKey) {
|
||||
throw new MongooseError('Must set `versionKey` if using `optimisticConcurrency`');
|
||||
}
|
||||
|
||||
return options;
|
||||
};
|
||||
|
||||
@@ -935,6 +941,14 @@ Schema.prototype.interpretAsType = function(path, obj, options) {
|
||||
if (options.hasOwnProperty('typePojoToMixed')) {
|
||||
childSchemaOptions.typePojoToMixed = options.typePojoToMixed;
|
||||
}
|
||||
|
||||
if (this._userProvidedOptions.hasOwnProperty('_id')) {
|
||||
childSchemaOptions._id = this._userProvidedOptions._id;
|
||||
} else if (Schema.Types.DocumentArray.defaultOptions &&
|
||||
Schema.Types.DocumentArray.defaultOptions._id != null) {
|
||||
childSchemaOptions._id = Schema.Types.DocumentArray.defaultOptions._id;
|
||||
}
|
||||
|
||||
const childSchema = new Schema(cast, childSchemaOptions);
|
||||
childSchema.$implicitlyCreated = true;
|
||||
return new MongooseTypes.DocumentArray(path, childSchema, obj);
|
||||
|
||||
Reference in New Issue
Block a user