New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ts-mongoose

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ts-mongoose - npm Package Compare versions

Comparing version 0.0.14 to 0.0.15

3

createSchema.d.ts

@@ -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.;
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

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>;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc