Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/mongoose/types/index.d.ts>mongoose.VirtualTypeOptions

MongoDB object modeling designed to work in an asynchronous environment.
Go to Latest
interface mongoose.VirtualTypeOptions
import { type mongoose } from "https://deno.land/x/mongoose@7.8.2/types/index.d.ts";
const { VirtualTypeOptions } = mongoose;

Type Parameters

optional
HydratedDocType = Document
optional
DocType = unknown

Index Signatures

[extra: string]: any

Properties

optional
ref: string | Function

If ref is not nullish, this becomes a populated virtual.

optional
localField: string | ((this: HydratedDocType, doc: HydratedDocType) => string)

The local field to populate on if this is a populated virtual.

optional
foreignField: string | ((this: HydratedDocType, doc: HydratedDocType) => string)

The foreign field to populate on if this is a populated virtual.

optional
justOne: boolean

By default, a populated virtual is an array. If you set justOne, the populated virtual will be a single doc or null.

optional
getters: boolean

If you set this to true, Mongoose will call any custom getters you defined on this virtual.

optional
count: boolean

If you set this to true, populate() will set this virtual to the number of populated documents, as opposed to the documents themselves, using Query#countDocuments().

optional
match: FilterQuery<any> | ((doc: Record<string, any>, virtual?: this) => Record<string, any> | null)

Add an extra match condition to populate().

optional
limit: number

Add a default limit to the populate() query.

optional
skip: number

Add a default skip to the populate() query.

optional
perDocumentLimit: number

For legacy reasons, limit with populate() may give incorrect results because it only executes a single query for every document being populated. If you set perDocumentLimit, Mongoose will ensure correct limit per document by executing a separate query for each document to populate(). For example, .find().populate({ path: 'test', perDocumentLimit: 2 }) will execute 2 additional queries if .find() returns 2 documents.

optional
options: QueryOptions<DocType> & { match?: AnyObject; }

Additional options like limit and lean.