ts-mongoose
Advanced tools
Comparing version 0.0.14 to 0.0.15
@@ -5,6 +5,7 @@ import { SchemaOptions, Schema } from 'mongoose'; | ||
[x: string]: any; | ||
}>(definition?: T, options?: SchemaOptions) => Schema & { | ||
}, O extends SchemaOptions>(definition?: T, options?: O extends SchemaOptions ? SchemaOptions : O) => Schema & { | ||
definition: ConvertObject<T>; | ||
options: O; | ||
}; | ||
export declare const createSchema: CreateSchema; | ||
export {}; |
@@ -5,6 +5,7 @@ import { SchemaOptions, Schema } from 'mongoose'; | ||
[x: string]: any; | ||
}>(definition?: T, options?: SchemaOptions) => Schema & { | ||
}, O extends SchemaOptions>(definition?: T, options?: O extends SchemaOptions ? SchemaOptions : O) => Schema & { | ||
definition: ConvertObject<T>; | ||
options: O; | ||
}; | ||
export declare const createSchema: CreateSchema; | ||
export {}; |
@@ -14,2 +14,3 @@ import { createSchema } from './createSchema'; | ||
} | ||
var PhoneSchema = createSchema({ phoneNumber: Type.number() }, { _id: false }); | ||
var exampleSchema = createSchema({ | ||
@@ -27,4 +28,5 @@ firstName: Type.string(), | ||
address: Type.optionalSchema().of(AddressSchema), | ||
phone: Type.schema().of(PhoneSchema), | ||
phones: Type.array().of(PhoneSchema), | ||
}); | ||
var a = null; | ||
a.address.; |
108
es/Type.d.ts
import { SchemaTypeOpts, Types } from 'mongoose'; | ||
import { Extract, ConvertObject } from './types'; | ||
import { Extract, ConvertObject, ExtractSchema } from './types'; | ||
export declare const Type: { | ||
@@ -23,12 +23,110 @@ string: (options?: SchemaTypeOpts<string>) => string; | ||
array: (options?: SchemaTypeOpts<any[]>) => { | ||
of<T>(schema: T): ConvertObject<T>[]; | ||
of<T>(schema: T): T extends { | ||
definition: any; | ||
} ? (T extends { | ||
options: infer U; | ||
} ? U : never) extends { | ||
_id: false; | ||
} ? { | ||
[x: number]: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
create: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
id: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
inspect: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toObject: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
remove: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
addToSet: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
indexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
nonAtomicPush: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pull: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
push: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
set: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
splice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
unshift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
length: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toLocaleString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
concat: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
join: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reverse: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
slice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
sort: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
lastIndexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
every: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
some: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
forEach: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
map: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
filter: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduce: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduceRight: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
find: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
findIndex: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
fill: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
copyWithin: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
entries: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
keys: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
values: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
includes: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
} : Types.DocumentArray<Extract<T> & Types.Subdocument> : T[]; | ||
}; | ||
optionalArray: (options?: SchemaTypeOpts<any[]>) => { | ||
of<T>(schema: T): ConvertObject<T>[] | null | undefined; | ||
of<T>(schema: T): (T extends { | ||
definition: any; | ||
} ? (T extends { | ||
options: infer U; | ||
} ? U : never) extends { | ||
_id: false; | ||
} ? { | ||
[x: number]: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
create: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
id: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
inspect: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toObject: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
remove: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
addToSet: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
indexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
nonAtomicPush: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pull: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
push: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
set: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
splice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
unshift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
length: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toLocaleString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
concat: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
join: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reverse: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
slice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
sort: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
lastIndexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
every: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
some: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
forEach: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
map: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
filter: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduce: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduceRight: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
find: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
findIndex: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
fill: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
copyWithin: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
entries: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
keys: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
values: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
includes: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
} : Types.DocumentArray<Extract<T> & Types.Subdocument> : T[]) | null | undefined; | ||
}; | ||
schema: (options?: SchemaTypeOpts<object>) => { | ||
of<T>(schema: T): Extract<T>; | ||
of<T>(schema: T): ExtractSchema<T>; | ||
}; | ||
optionalSchema: (options?: SchemaTypeOpts<object>) => { | ||
of<T>(schema: T): Extract<T> | null | undefined; | ||
of<T>(schema: T): ExtractSchema<T> | null | undefined; | ||
}; | ||
@@ -35,0 +133,0 @@ ref: <T>(schema: T) => { |
@@ -5,3 +5,17 @@ import { Types, Document } from 'mongoose'; | ||
} ? U : never; | ||
declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; | ||
export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; | ||
declare type ExtractOptions<T> = T extends { | ||
options: infer U; | ||
} ? U : never; | ||
declare type DisabledIdOption = { | ||
_id: false; | ||
}; | ||
declare type IsSchemaType<T, IS, NOT> = T extends { | ||
definition: any; | ||
} ? IS : NOT; | ||
declare type SubdocumentsArrayWithoutId<T extends Types.Subdocument> = { | ||
[P in keyof Types.DocumentArray<T>]: Omit<T, '_id'>; | ||
}; | ||
export declare type ExtractSchema<T> = Extract<T> & (ExtractOptions<T> extends DisabledIdOption ? Omit<Types.Subdocument, '_id'> : Types.Subdocument); | ||
export declare type ArrayOfElements<T> = IsSchemaType<T, ExtractOptions<T> extends DisabledIdOption ? SubdocumentsArrayWithoutId<Extract<T> & Types.Subdocument> : Types.DocumentArray<Extract<T> & Types.Subdocument>, Array<T>>; | ||
declare type ExcludeBaseType<T> = Exclude<T, string | number | Types.ObjectId>; | ||
@@ -8,0 +22,0 @@ export declare type ExcludeFromArray<T> = T extends Array<infer U> ? Array<ExcludeBaseType<U>> : ExcludeBaseType<T>; |
@@ -16,2 +16,3 @@ "use strict"; | ||
} | ||
var PhoneSchema = createSchema_1.createSchema({ phoneNumber: Type_1.Type.number() }, { _id: false }); | ||
var exampleSchema = createSchema_1.createSchema({ | ||
@@ -29,4 +30,5 @@ firstName: Type_1.Type.string(), | ||
address: Type_1.Type.optionalSchema().of(AddressSchema), | ||
phone: Type_1.Type.schema().of(PhoneSchema), | ||
phones: Type_1.Type.array().of(PhoneSchema), | ||
}); | ||
var a = null; | ||
a.address.; |
{ | ||
"name": "ts-mongoose", | ||
"version": "0.0.14", | ||
"version": "0.0.15", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -36,2 +36,7 @@ # ts-mongoose | ||
const PhoneSchema = new Schema({ | ||
phoneNumber: { type: Schema.Types.Number, required: true }, | ||
name: String | ||
}) | ||
const UserSchema = new Schema({ | ||
@@ -65,2 +70,6 @@ title: { type: String, required: true }, | ||
}, | ||
phones: { | ||
type: [PhoneSchema], | ||
required: true, | ||
}, | ||
}); | ||
@@ -88,2 +97,7 @@ | ||
zip: Type.optionalString(), | ||
}, { _id: false }); | ||
const PhoneSchema = createSchema({ | ||
phoneNumber: Type.number(), | ||
name: Type.optionalString(), | ||
}); | ||
@@ -108,2 +122,3 @@ | ||
address: Type.schema().of(AddressSchema), | ||
phones: Type.array().of(PhoneSchema), | ||
}); | ||
@@ -144,2 +159,20 @@ | ||
``` | ||
- `schema.of(ExampleSchema)` has typical for Subdocument additional fields and methods. Setting `{ _id: false }` in SchemaOptions won't attach `_id` property in Subdocument | ||
```ts | ||
const AddressSchema = createSchema({city: Type.string()}, { _id: false }); | ||
{ | ||
// same as {type: AddressSchema} | ||
address: Type.schema().of(AddressSchema) | ||
} | ||
// address property has city property, other Subdocument methods and properties except '_id' | ||
``` | ||
- `array.of(ExampleSchema)` will return DocumentArray instead of standard array | ||
```ts | ||
const PhoneSchema = createSchema({phoneNumber: Type.number()}, { _id: false }); | ||
{ | ||
// same as {type: [PhoneSchema]} | ||
phones: Type.schema().of(PhoneSchema) | ||
} | ||
// phones property has such methods as create(), id(), but also those typical for arrays like map(), filter() etc | ||
``` | ||
- `ref` is a special type for creating references | ||
@@ -146,0 +179,0 @@ ```ts |
108
Type.d.ts
import { SchemaTypeOpts, Types } from 'mongoose'; | ||
import { Extract, ConvertObject } from './types'; | ||
import { Extract, ConvertObject, ExtractSchema } from './types'; | ||
export declare const Type: { | ||
@@ -23,12 +23,110 @@ string: (options?: SchemaTypeOpts<string>) => string; | ||
array: (options?: SchemaTypeOpts<any[]>) => { | ||
of<T>(schema: T): ConvertObject<T>[]; | ||
of<T>(schema: T): T extends { | ||
definition: any; | ||
} ? (T extends { | ||
options: infer U; | ||
} ? U : never) extends { | ||
_id: false; | ||
} ? { | ||
[x: number]: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
create: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
id: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
inspect: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toObject: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
remove: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
addToSet: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
indexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
nonAtomicPush: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pull: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
push: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
set: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
splice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
unshift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
length: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toLocaleString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
concat: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
join: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reverse: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
slice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
sort: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
lastIndexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
every: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
some: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
forEach: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
map: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
filter: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduce: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduceRight: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
find: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
findIndex: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
fill: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
copyWithin: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
entries: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
keys: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
values: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
includes: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
} : Types.DocumentArray<Extract<T> & Types.Subdocument> : T[]; | ||
}; | ||
optionalArray: (options?: SchemaTypeOpts<any[]>) => { | ||
of<T>(schema: T): ConvertObject<T>[] | null | undefined; | ||
of<T>(schema: T): (T extends { | ||
definition: any; | ||
} ? (T extends { | ||
options: infer U; | ||
} ? U : never) extends { | ||
_id: false; | ||
} ? { | ||
[x: number]: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
create: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
id: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
inspect: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toObject: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
remove: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
$pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
addToSet: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
indexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
nonAtomicPush: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pop: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
pull: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
push: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
set: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
shift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
splice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
unshift: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
length: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
toLocaleString: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
concat: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
join: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reverse: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
slice: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
sort: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
lastIndexOf: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
every: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
some: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
forEach: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
map: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
filter: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduce: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
reduceRight: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
find: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
findIndex: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
fill: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
copyWithin: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
entries: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
keys: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
values: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
includes: Pick<Extract<T> & Types.Subdocument, "toString" | "init" | "validate" | "remove" | "update" | "id" | "toJSON" | "toObject" | "inspect" | "set" | "ownerDocument" | "$isDefault" | "$session" | "depopulate" | "equals" | "execPopulate" | "isDirectSelected" | "get" | "invalidate" | "isDirectModified" | "isInit" | "isModified" | "isSelected" | "markModified" | "modifiedPaths" | "populate" | "populated" | "unmarkModified" | "validateSync" | "errors" | "isNew" | "schema" | Exclude<keyof Extract<T>, "_id">>; | ||
} : Types.DocumentArray<Extract<T> & Types.Subdocument> : T[]) | null | undefined; | ||
}; | ||
schema: (options?: SchemaTypeOpts<object>) => { | ||
of<T>(schema: T): Extract<T>; | ||
of<T>(schema: T): ExtractSchema<T>; | ||
}; | ||
optionalSchema: (options?: SchemaTypeOpts<object>) => { | ||
of<T>(schema: T): Extract<T> | null | undefined; | ||
of<T>(schema: T): ExtractSchema<T> | null | undefined; | ||
}; | ||
@@ -35,0 +133,0 @@ ref: <T>(schema: T) => { |
@@ -5,3 +5,17 @@ import { Types, Document } from 'mongoose'; | ||
} ? U : never; | ||
declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; | ||
export declare type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>; | ||
declare type ExtractOptions<T> = T extends { | ||
options: infer U; | ||
} ? U : never; | ||
declare type DisabledIdOption = { | ||
_id: false; | ||
}; | ||
declare type IsSchemaType<T, IS, NOT> = T extends { | ||
definition: any; | ||
} ? IS : NOT; | ||
declare type SubdocumentsArrayWithoutId<T extends Types.Subdocument> = { | ||
[P in keyof Types.DocumentArray<T>]: Omit<T, '_id'>; | ||
}; | ||
export declare type ExtractSchema<T> = Extract<T> & (ExtractOptions<T> extends DisabledIdOption ? Omit<Types.Subdocument, '_id'> : Types.Subdocument); | ||
export declare type ArrayOfElements<T> = IsSchemaType<T, ExtractOptions<T> extends DisabledIdOption ? SubdocumentsArrayWithoutId<Extract<T> & Types.Subdocument> : Types.DocumentArray<Extract<T> & Types.Subdocument>, Array<T>>; | ||
declare type ExcludeBaseType<T> = Exclude<T, string | number | Types.ObjectId>; | ||
@@ -8,0 +22,0 @@ export declare type ExcludeFromArray<T> = T extends Array<infer U> ? Array<ExcludeBaseType<U>> : ExcludeBaseType<T>; |
117130
880
264