mongoose
Version:
Mongoose MongoDB ODM
386 lines (356 loc) • 676 kB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>Mongoose API v3.0.1</title><link href="http://fonts.googleapis.com/css?family=Anonymous+Pro:400,700|Droid+Sans+Mono|Open+Sans:400,700|Linden+Hill|Quattrocento:400,700|News+Cycle:400,700|Antic+Slab|Cabin+Condensed:400,700" rel="stylesheet" type="text/css"><link href="/docs/css/default.css" rel="stylesheet" type="text/css"><style>body {
background: #d8e2d8 url(/docs/images/square_bg.png) fixed;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
color: #333;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: 100%;
padding: 0;
margin: 0;
font-size: 14px;
line-height: 22px;
}
a {
color: #800;
-webkit-transition-property: opacity, -webkit-transform, color, background-color, padding, -webkit-box-shadow;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out;
}
a:hover {
opacity: 0.8;
}
#wrap {
}
h1 {
font-family: 'Helvetica Nueue', Helvetica, Arial, FreeSans, sans-serif;
text-rendering: geometricPrecision;
}
pre {
background: rgba(255,255,255,.8);
border: 1px solid #bbb;
padding:5px;
border-radius: 3px;
box-shadow: 1px 3px 6px #ddd;
}
code {
background: rgba(255,255,255,.8);
color: #333;
border-radius: 3px;
font-size: 13px;
font-family: Monaco;
}
pre code {
border: 0 none;
padding: 1.2em;
overflow-x: auto;
}
h3 {
padding: 20px 15px;
margin-left: -15px;
}
h3 code {
font-weight: normal;
}
hr {
height: 1px;
border: 0 none;
padding: 0;
margin: 60px 0;
background: -webkit-gradient(linear, left top, right top, from(rgba(57, 172, 57, 0.0)), color-stop(0.5, rgba(57, 172, 57, 0.33)), to(rgba(57, 172, 57, 0.0)))
}
.doclinks hr {
margin: 10px 0;
}
li {
list-style: square;
}
#header {
padding-top: 22px;
padding-bottom: 25px;
text-transform: lowercase;
}
#header h1 {
margin-top: 0;
margin-bottom: 0;
}
#header h1 a {
text-decoration: none;
}
#header .mongoose {
font-size: 50px;
font-weight: 100;
color: #fff;
text-shadow: 6px 4px 5px #777, -2px 0px 2px white;
letter-spacing: -7px;
}
#links {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: 210px;
overflow-x: hidden;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
padding: 15px 0 30px 20px;
border-right: 1px solid #ddd;
background: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(0.92, transparent), color-stop(0.9201, rgba(172,172,172, 0.0)), to(rgba(172,172,172, 0.4))), transparent;
}
#links hr {
margin: 32px 0;
}
#content {
padding: 0;
margin: 0 0 30px 230px;
overflow-x: hidden;
}
#content .controls {
padding: 5px 15px 5px 10px;
position: fixed;
background: #fff;
border: 3px solid #eee;
border-radius: 0 0 12px 0;
border-width: 0 3px 3px 10px;
width: 100%;
bottom: 0;
opacity: 0.75;
-webkit-transition-property: opacity;
-webkit-transition-duration: 0.15s;
-webkit-transition-timing-function: ease-out;
}
#content .controls:hover {
opacity: .9;
}
#content p {
word-wrap: break-word;
}
#content > ul {
margin: 0;
padding: 0;
}
.private {
display: none;
}
.section {
font-size: 15px;
}
.doclinks li.private a:before,
.doclinks .module.private a:before,
.doclinks item.private a:before {
content: "p";
background: #333;
color: #fff;
font-size: 11px;
line-height: 15px;
font-weight: normal;
padding: 0 2px;
border-radius: 3px;
border: 1px solid #333;
display: inline-block;
margin-right: 5px;
}
#content .private h3:after {
content: "private";
background: #333;
color: #fff;
font-size: 11px;
line-height: 15px;
font-weight: normal;
padding: 0 2px;
border-radius: 3px;
border: 1px solid #333;
display: inline-block;
margin-left: 5px;
}
.module {
list-style: none;
padding: 30px 0 30px 30px;
border-color: #eee;
border-width: 9px 10px;
border-style: solid;
background-color: #fff;
}
.module > * {
max-width: 700px;
}
.item:last-child {
margin-bottom: 90px;
}
.item:last-child > hr {
display: none;
}
.item h3 a {
color: #333;
text-decoration: none;
}
.property h3 span {
color: #444;
}
.description {
margin-top: 25px;
}
.sourcecode {
display: none;
}
.showcode {
font-size: 12px;
cursor: pointer;
display: none;
}
.load .showcode {
display: block;
}
.types a {
text-decoration: none;
}
@media only screen and (device-width: 768px) {
}
@media only screen and (max-width: 480px) {
#forkbanner { display: none }
#header .mongoose {
font-size: 65px;
text-align: center;
}
#links {
position: static;
width: auto;
border: 0 none;
border-right: 0 none;
border-bottom: 1px solid #ddd;
background: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0.92, transparent), color-stop(0.9201, rgba(172,172,172, 0.0)), to(rgba(172,172,172, 0.4))), transparent;
padding: 15px 0;
}
#links hr {
display: none;
}
#links, #links ul, #links li { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
#links ul { padding: 0 10px 0 0; }
#links li {
list-style: none;
display: inline-block;
width: 25%;
text-align: center;
}
#links .home, #links .support, #links .fork {
display: none;
}
.doclinks {
display: none;
}
#content { margin-left: 0; }
.module {
padding-left: 5px;
border-width: 3px;
}
.controls { display: none; }
}</style></head><body class="api"><a id="forkbanner" href="http://github.com/learnboost/mongoose"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png" alt="Fork me on GitHub"></a><div id="links"><div id="header"><h1><a href="../index.html"><div class="mongoose">Mongoose</div></a></h1></div><ul><li class="home"><a href="../index.html">home</a></li><li class="plugins"><a href="http://plugins.mongoosejs.com">plugins</a></li><li class="changelog"><a href="http://github.com/learnboost/mongoose/tree/master/History.md">change log</a></li><li class="support"><a href="../index.html#support">support</a></li><li class="fork"><a href="http://github.com/learnboost/mongoose">fork</a></li><li class="guide"><a href="./guide.html">guide</a></li><li class="api"><a href="./api.html">api docs</a></li><li class="quickstart"><a href="./index.html">quick start</a></li><li class="contrib"><a href="http://github.com/learnboost/mongoose/contributors">contributors</a></li><li class="prior"><a href="./prior.html">prior releases</a></li></ul><hr><div class="doclinks"><div class="file "><a href="#index-js" class="section">index.js</a><ul><li class=""><a href="#index_Mongoose">Mongoose</a></li><li class=""><a href="#index_Mongoose-set">set</a></li><li class=""><a href="#index_Mongoose-get">get</a></li><li class=""><a href="#index_Mongoose-createConnection">createConnection</a></li><li class=""><a href="#index_Mongoose-connect">connect</a></li><li class=""><a href="#index_Mongoose-disconnect">disconnect</a></li><li class=""><a href="#index_Mongoose-model">model</a></li><li class=""><a href="#index_Mongoose-plugin">plugin</a></li><li class=""><a href="#index_module-exports">exports</a></li><li class=""><a href="#index_mongoose-Collection">Collection</a></li><li class=""><a href="#index_mongoose-Connection">Connection</a></li><li class=""><a href="#index_mongoose-version">version</a></li><li class=""><a href="#index_mongoose-Mongoose">Mongoose</a></li><li class=""><a href="#index_mongoose-Schema">Schema</a></li><li class=""><a href="#index_mongoose-SchemaType">SchemaType</a></li><li class=""><a href="#index_mongoose-SchemaTypes">SchemaTypes</a></li><li class=""><a href="#index_mongoose-VirtualType">VirtualType</a></li><li class=""><a href="#index_mongoose-Types">Types</a></li><li class=""><a href="#index_mongoose-Query">Query</a></li><li class=""><a href="#index_mongoose-Promise">Promise</a></li><li class=""><a href="#index_mongoose-Model">Model</a></li><li class=""><a href="#index_mongoose-Document">Document</a></li><li class=""><a href="#index_mongoose-Error">Error</a></li><li class=""><a href="#index_mongoose-mongo">mongo</a></li><li class=""><a href="#index_Mongoose-connection">connection</a></li></ul></div><div class="file "><a href="#collection-js" class="section">collection.js</a><ul><li class=""><a href="#collection_Collection">Collection</a></li><li class="private"><a href="#collection_Collection-onOpen">onOpen</a></li><li class="private"><a href="#collection_Collection-onClose">onClose</a></li><li class="private"><a href="#collection_Collection-addQueue">addQueue</a></li><li class="private"><a href="#collection_Collection-doQueue">doQueue</a></li><li class=""><a href="#collection_Collection-ensureIndex">ensureIndex</a></li><li class=""><a href="#collection_Collection-findAndModify">findAndModify</a></li><li class=""><a href="#collection_Collection-findOne">findOne</a></li><li class=""><a href="#collection_Collection-find">find</a></li><li class=""><a href="#collection_Collection-insert">insert</a></li><li class=""><a href="#collection_Collection-save">save</a></li><li class=""><a href="#collection_Collection-update">update</a></li><li class=""><a href="#collection_Collection-getIndexes">getIndexes</a></li><li class=""><a href="#collection_Collection-mapReduce">mapReduce</a></li><li class=""><a href="#collection_Collection-conn">conn</a></li><li class=""><a href="#collection_Collection-name">name</a></li></ul></div><div class="file "><a href="#connection-js" class="section">connection.js</a><ul><li class=""><a href="#connection_Connection">Connection</a></li><li class=""><a href="#connection_Connection-open">open</a></li><li class=""><a href="#connection_Connection-openSet">openSet</a></li><li class="private"><a href="#connection_Connection-error">error</a></li><li class="private"><a href="#connection_Connection-_open">_open</a></li><li class="private"><a href="#connection_Connection-onOpen">onOpen</a></li><li class=""><a href="#connection_Connection-close">close</a></li><li class="private"><a href="#connection_Connection-onClose">onClose</a></li><li class=""><a href="#connection_Connection-collection">collection</a></li><li class=""><a href="#connection_Connection-model">model</a></li><li class=""><a href="#connection_Connection-setProfiling">setProfiling</a></li><li class="private"><a href="#connection_Connection-defaultOptions">defaultOptions</a></li><li class=""><a href="#connection_Connection-db">db</a></li><li class=""><a href="#connection_Connection-collections">collections</a></li><li class=""><a href="#connection_Connection-readyState">readyState</a></li></ul></div><div class="file "><a href="#document-js" class="section">document.js</a><ul><li class="private"><a href="#document_Document">Document</a></li><li class="private"><a href="#document_Document-_buildDoc">_buildDoc</a></li><li class="private"><a href="#document_Document-init">init</a></li><li class="private"><a href="#document_Document-_storeShard">_storeShard</a></li><li class=""><a href="#document_Document-update">update</a></li><li class=""><a href="#document_Document-set">set</a></li><li class="private"><a href="#document_Document-_set">_set</a></li><li class="private"><a href="#document_Document-getValue">getValue</a></li><li class="private"><a href="#document_Document-setValue">setValue</a></li><li class=""><a href="#document_Document-get">get</a></li><li class="private"><a href="#document_Document-_path">_path</a></li><li class=""><a href="#document_Document-markModified">markModified</a></li><li class="private"><a href="#document_Document-try">try</a></li><li class=""><a href="#document_Document-modifiedPaths">modifiedPaths</a></li><li class=""><a href="#document_Document-isModified">isModified</a></li><li class=""><a href="#document_Document-isDirectModified">isDirectModified</a></li><li class=""><a href="#document_Document-isInit">isInit</a></li><li class=""><a href="#document_Document-isSelected">isSelected</a></li><li class=""><a href="#document_Document-validate">validate</a></li><li class=""><a href="#document_Document-invalidate">invalidate</a></li><li class="private"><a href="#document_Document-_reset">_reset</a></li><li class="private"><a href="#document_Document-_dirty">_dirty</a></li><li class="private"><a href="#document_Document-_setSchema">_setSchema</a></li><li class="private"><a href="#document_Document-_registerHooks">_registerHooks</a></li><li class="private"><a href="#document_Document-_error">_error</a></li><li class="private"><a href="#document_Document-_doQueue">_doQueue</a></li><li class=""><a href="#document_Document-toObject">toObject</a></li><li class=""><a href="#document_Document-toJSON">toJSON</a></li><li class=""><a href="#document_Document-inspect">inspect</a></li><li class=""><a href="#document_Document-toString">toString</a></li><li class=""><a href="#document_Document-equals">equals</a></li><li class=""><a href="#document_Document-errors">errors</a></li><li class=""><a href="#document_Document-isNew">isNew</a></li><li class=""><a href="#document_Document-schema">schema</a></li></ul></div><div class="file "><a href="#drivers-node-mongodb-native-collection-js" class="section">drivers/node-mongodb-native/collection.js</a><ul><li class="private"><a href="#drivers_node-mongodb-native_collection_NativeCollection">NativeCollection</a></li><li class="private"><a href="#drivers_node-mongodb-native_collection_NativeCollection-onOpen">onOpen</a></li><li class="private"><a href="#drivers_node-mongodb-native_collection_NativeCollection-onClose">onClose</a></li><li class=""><a href="#drivers_node-mongodb-native_collection_NativeCollection-getIndexes">getIndexes</a></li></ul></div><div class="file private"><a href="#drivers-node-mongodb-native-connection-js" class="section">drivers/node-mongodb-native/connection.js</a><ul><li class="private"><a href="#drivers_node-mongodb-native_connection_NativeConnection">NativeConnection</a></li><li class="private"><a href="#drivers_node-mongodb-native_connection_NativeConnection-doOpen">doOpen</a></li><li class="private"><a href="#drivers_node-mongodb-native_connection_NativeConnection-doOpenSet">doOpenSet</a></li><li class="private"><a href="#drivers_node-mongodb-native_connection_NativeConnection-doClose">doClose</a></li></ul></div><div class="file private"><a href="#error-js" class="section">error.js</a><ul><li class="private"><a href="#error_MongooseError">MongooseError</a></li></ul></div><div class="file private"><a href="#errors-cast-js" class="section">errors/cast.js</a><ul><li class="private"><a href="#errors_cast_CastError">CastError</a></li></ul></div><div class="file private"><a href="#errors-document-js" class="section">errors/document.js</a><ul><li class="private"><a href="#errors_document_DocumentError">DocumentError</a></li></ul></div><div class="file "><a href="#errors-validation-js" class="section">errors/validation.js</a><ul><li class="private"><a href="#errors_validation_ValidationError">ValidationError</a></li><li class=""><a href="#errors_validation_ValidationError-toString">toString</a></li></ul></div><div class="file private"><a href="#errors-validator-js" class="section">errors/validator.js</a><ul><li class="private"><a href="#errors_validator_ValidatorError">ValidatorError</a></li></ul></div><div class="file "><a href="#model-js" class="section">model.js</a><ul><li class=""><a href="#model_Model">Model</a></li><li class="private"><a href="#model_Model-_getPopulationKeys">_getPopulationKeys</a></li><li class="private"><a href="#model_Model-_populate">_populate</a></li><li class="private"><a href="#model_Model-init">init</a></li><li class=""><a href="#model_Model-save">save</a></li><li class="private"><a href="#model_Model-_delta">_delta</a></li><li class="private"><a href="#model_Model-_version">_version</a></li><li class=""><a href="#model_Model-increment">increment</a></li><li class="private"><a href="#model_Model-_where">_where</a></li><li class=""><a href="#model_Model-remove">remove</a></li><li class="private"><a href="#model_Model-_registerHooks">_registerHooks</a></li><li class=""><a href="#model_Model-model">model</a></li><li class=""><a href="#model_Model-%24where">$where</a></li><li class="private"><a href="#model_Model-init">init</a></li><li class=""><a href="#model_Model-ensureIndexes">ensureIndexes</a></li><li class=""><a href="#model_Model-remove">remove</a></li><li class=""><a href="#model_Model-find">find</a></li><li class="private"><a href="#model_Model-_applyNamedScope">_applyNamedScope</a></li><li class=""><a href="#model_Model-findById">findById</a></li><li class=""><a href="#model_Model-findOne">findOne</a></li><li class=""><a href="#model_Model-count">count</a></li><li class=""><a href="#model_Model-distinct">distinct</a></li><li class=""><a href="#model_Model-where">where</a></li><li class=""><a href="#model_Model-findOneAndUpdate">findOneAndUpdate</a></li><li class=""><a href="#model_Model-findByIdAndUpdate">findByIdAndUpdate</a></li><li class=""><a href="#model_Model-findOneAndRemove">findOneAndRemove</a></li><li class=""><a href="#model_Model-findByIdAndRemove">findByIdAndRemove</a></li><li class=""><a href="#model_Model-create">create</a></li><li class=""><a href="#model_Model-update">update</a></li><li class=""><a href="#model_Model-mapReduce">mapReduce</a></li><li class=""><a href="#model_Model-base">base</a></li><li class=""><a href="#model_Model-collection">collection</a></li><li class=""><a href="#model_Model-db">db</a></li><li class=""><a href="#model_Model-schema">schema</a></li><li class=""><a href="#model_Model-modelName">modelName</a></li><li class=""><a href="#model_Model-collection">collection</a></li><li class=""><a href="#model_Model-db">db</a></li></ul></div><div class="file private"><a href="#namedscope-js" class="section">namedscope.js</a><ul><li class="private"><a href="#namedscope_NamedScope-decorate">decorate</a></li></ul></div><div class="file "><a href="#promise-js" class="section">promise.js</a><ul><li class=""><a href="#promise_Promise">Promise</a></li><li class=""><a href="#promise_Promise-on">on</a></li><li class="private"><a href="#promise_Promise-emit">emit</a></li><li class=""><a href="#promise_Promise-complete">complete</a></li><li class=""><a href="#promise_Promise-error">error</a></li><li class=""><a href="#promise_Promise-addCallback">addCallback</a></li><li class=""><a href="#promise_Promise-addErrback">addErrback</a></li><li class=""><a href="#promise_Promise-addBack">addBack</a></li><li class=""><a href="#promise_Promise-resolve">resolve</a></li></ul></div><div class="file "><a href="#query-js" class="section">query.js</a><ul><li class=""><a href="#query_Query">Query</a></li><li class=""><a href="#query_Query-setOptions">setOptions</a></li><li class="private"><a href="#query_Query-bind">bind</a></li><li class=""><a href="#query_Query-exec">exec</a></li><li class=""><a href="#query_Query-find">find</a></li><li class=""><a href="#query_Query-cast">cast</a></li><li class="private"><a href="#query_Query-_optionsForExec">_optionsForExec</a></li><li class="private"><a href="#query_Query-_applyPaths">_applyPaths</a></li><li class=""><a href="#query_Query-%24where">$where</a></li><li class=""><a href="#query_Query-where">where</a></li><li class=""><a href="#query_Query-equals">equals</a></li><li class=""><a href="#query_Query-or">or</a></li><li class=""><a href="#query_Query-nor">nor</a></li><li class=""><a href="#query_Query-gt">gt</a></li><li class=""><a href="#query_Query-gte">gte</a></li><li class=""><a href="#query_Query-lt">lt</a></li><li class=""><a href="#query_Query-lte">lte</a></li><li class=""><a href="#query_Query-ne">ne</a></li><li class=""><a href="#query_Query-in">in</a></li><li class=""><a href="#query_Query-nin">nin</a></li><li class=""><a href="#query_Query-all">all</a></li><li class=""><a href="#query_Query-size">size</a></li><li class=""><a href="#query_Query-regex">regex</a></li><li class=""><a href="#query_Query-maxDistance">maxDistance</a></li><li class=""><a href="#query_Query-near">near</a></li><li class=""><a href="#query_Query-nearSphere">nearSphere</a></li><li class=""><a href="#query_Query-mod">mod</a></li><li class=""><a href="#query_Query-exists">exists</a></li><li class=""><a href="#query_Query-elemMatch">elemMatch</a></li><li class=""><a href="#query_Query-box">box</a></li><li class=""><a href="#query_Query-center">center</a></li><li class=""><a href="#query_Query-centerSphere">centerSphere</a></li><li class=""><a href="#query_Query-polygon">polygon</a></li><li class=""><a href="#query_Query-select">select</a></li><li class=""><a href="#query_Query-slice">slice</a></li><li class=""><a href="#query_Query-sort">sort</a></li><li class=""><a href="#query_Query-limit">limit</a></li><li class=""><a href="#query_Query-skip">skip</a></li><li class=""><a href="#query_Query-maxscan">maxscan</a></li><li class=""><a href="#query_Query-batchSize">batchSize</a></li><li class=""><a href="#query_Query-comment">comment</a></li><li class=""><a href="#query_Query-snapshot">snapshot</a></li><li class=""><a href="#query_Query-hint">hint</a></li><li class=""><a href="#query_Query-slaveOk">slaveOk</a></li><li class=""><a href="#query_Query-lean">lean</a></li><li class=""><a href="#query_Query-tailable">tailable</a></li><li class="private"><a href="#query_Query-execFind">execFind</a></li><li class=""><a href="#query_Query-findOne">findOne</a></li><li class=""><a href="#query_Query-count">count</a></li><li class=""><a href="#query_Query-distinct">distinct</a></li><li class=""><a href="#query_Query-update">update</a></li><li class="private"><a href="#query_Query-_castUpdate">_castUpdate</a></li><li class="private"><a href="#query_Query-_walkUpdatePath">_walkUpdatePath</a></li><li class="private"><a href="#query_Query-_castUpdateVal">_castUpdateVal</a></li><li class="private"><a href="#query_Query-_getSchema">_getSchema</a></li><li class=""><a href="#query_Query-remove">remove</a></li><li class=""><a href="#query_Query-findOneAndUpdate">findOneAndUpdate</a></li><li class=""><a href="#query_Query-findOneAndRemove">findOneAndRemove</a></li><li class="private"><a href="#query_Query-_findAndModify">_findAndModify</a></li><li class=""><a href="#query_Query-populate">populate</a></li><li class=""><a href="#query_Query-stream">stream</a></li><li class=""><a href="#query_Query-within">within</a></li></ul></div><div class="file "><a href="#querystream-js" class="section">querystream.js</a><ul><li class=""><a href="#querystream_QueryStream">QueryStream</a></li><li class="private"><a href="#querystream_QueryStream-_init">_init</a></li><li class="private"><a href="#querystream_QueryStream-_next">_next</a></li><li class="private"><a href="#querystream_QueryStream-__next">__next</a></li><li class="private"><a href="#querystream_QueryStream-_onNextObject">_onNextObject</a></li><li class=""><a href="#querystream_QueryStream-pause">pause</a></li><li class=""><a href="#querystream_QueryStream-resume">resume</a></li><li class=""><a href="#querystream_QueryStream-destroy">destroy</a></li><li class=""><a href="#querystream_QueryStream-pipe">pipe</a></li><li class=""><a href="#querystream_QueryStream-paused">paused</a></li><li class=""><a href="#querystream_QueryStream-readable">readable</a></li></ul></div><div class="file private"><a href="#schema-array-js" class="section">schema/array.js</a><ul><li class="private"><a href="#schema_array_SchemaArray">SchemaArray</a></li><li class="private"><a href="#schema_array_SchemaArray-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_array_SchemaArray-applyGetters">applyGetters</a></li><li class="private"><a href="#schema_array_SchemaArray-cast">cast</a></li><li class="private"><a href="#schema_array_SchemaArray-castForQuery">castForQuery</a></li></ul></div><div class="file private"><a href="#schema-boolean-js" class="section">schema/boolean.js</a><ul><li class="private"><a href="#schema_boolean_SchemaBoolean">SchemaBoolean</a></li><li class="private"><a href="#schema_boolean_SchemaBoolean-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_boolean_SchemaBoolean-cast">cast</a></li><li class="private"><a href="#schema_boolean_SchemaBoolean-castForQuery">castForQuery</a></li></ul></div><div class="file private"><a href="#schema-buffer-js" class="section">schema/buffer.js</a><ul><li class="private"><a href="#schema_buffer_SchemaBuffer">SchemaBuffer</a></li><li class="private"><a href="#schema_buffer_SchemaBuffer-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_buffer_SchemaBuffer-cast">cast</a></li><li class="private"><a href="#schema_buffer_SchemaBuffer-castForQuery">castForQuery</a></li></ul></div><div class="file private"><a href="#schema-date-js" class="section">schema/date.js</a><ul><li class="private"><a href="#schema_date_SchemaDate">SchemaDate</a></li><li class="private"><a href="#schema_date_SchemaDate-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_date_SchemaDate-cast">cast</a></li><li class="private"><a href="#schema_date_SchemaDate-castForQuery">castForQuery</a></li></ul></div><div class="file private"><a href="#schema-documentarray-js" class="section">schema/documentarray.js</a><ul><li class="private"><a href="#schema_documentarray_DocumentArray">DocumentArray</a></li><li class="private"><a href="#schema_documentarray_DocumentArray-doValidate">doValidate</a></li><li class="private"><a href="#schema_documentarray_DocumentArray-cast">cast</a></li></ul></div><div class="file private"><a href="#schema-mixed-js" class="section">schema/mixed.js</a><ul><li class="private"><a href="#schema_mixed_Mixed">Mixed</a></li><li class="private"><a href="#schema_mixed_Mixed-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_mixed_Mixed-cast">cast</a></li><li class="private"><a href="#schema_mixed_Mixed-castForQuery">castForQuery</a></li></ul></div><div class="file "><a href="#schema-number-js" class="section">schema/number.js</a><ul><li class="private"><a href="#schema_number_SchemaNumber">SchemaNumber</a></li><li class="private"><a href="#schema_number_SchemaNumber-checkRequired">checkRequired</a></li><li class=""><a href="#schema_number_SchemaNumber-min">min</a></li><li class=""><a href="#schema_number_SchemaNumber-max">max</a></li><li class="private"><a href="#schema_number_SchemaNumber-cast">cast</a></li><li class="private"><a href="#schema_number_SchemaNumber-castForQuery">castForQuery</a></li></ul></div><div class="file private"><a href="#schema-objectid-js" class="section">schema/objectid.js</a><ul><li class="private"><a href="#schema_objectid_ObjectId">ObjectId</a></li><li class="private"><a href="#schema_objectid_ObjectId-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_objectid_ObjectId-cast">cast</a></li><li class="private"><a href="#schema_objectid_ObjectId-castForQuery">castForQuery</a></li><li class="private"><a href="#schema_objectid_ObjectId-auto">auto</a></li></ul></div><div class="file "><a href="#schema-string-js" class="section">schema/string.js</a><ul><li class="private"><a href="#schema_string_SchemaString">SchemaString</a></li><li class=""><a href="#schema_string_SchemaString-enum">enum</a></li><li class=""><a href="#schema_string_SchemaString-lowercase">lowercase</a></li><li class=""><a href="#schema_string_SchemaString-uppercase">uppercase</a></li><li class=""><a href="#schema_string_SchemaString-trim">trim</a></li><li class=""><a href="#schema_string_SchemaString-match">match</a></li><li class="private"><a href="#schema_string_SchemaString-checkRequired">checkRequired</a></li><li class="private"><a href="#schema_string_SchemaString-cast">cast</a></li><li class="private"><a href="#schema_string_SchemaString-castForQuery">castForQuery</a></li></ul></div><div class="file "><a href="#schema-js" class="section">schema.js</a><ul><li class=""><a href="#schema_Schema">Schema</a></li><li class=""><a href="#schema_Schema-add">add</a></li><li class=""><a href="#schema_Schema-path">path</a></li><li class=""><a href="#schema_Schema-eachPath">eachPath</a></li><li class=""><a href="#schema_Schema-requiredPaths">requiredPaths</a></li><li class=""><a href="#schema_Schema-pathType">pathType</a></li><li class="private"><a href="#schema_Schema-queue">queue</a></li><li class=""><a href="#schema_Schema-pre">pre</a></li><li class=""><a href="#schema_Schema-post">post</a></li><li class=""><a href="#schema_Schema-plugin">plugin</a></li><li class=""><a href="#schema_Schema-method">method</a></li><li class=""><a href="#schema_Schema-static">static</a></li><li class=""><a href="#schema_Schema-index">index</a></li><li class=""><a href="#schema_Schema-set">set</a></li><li class=""><a href="#schema_Schema-indexes">indexes</a></li><li class=""><a href="#schema_Schema-virtual">virtual</a></li><li class=""><a href="#schema_Schema-virtualpath">virtualpath</a></li><li class="private"><a href="#schema_Schema-namedScope">namedScope</a></li><li class=""><a href="#schema_Schema-reserved">reserved</a></li><li class="private"><a href="#schema_Schema-interpretAsType">interpretAsType</a></li><li class=""><a href="#schema_Schema-Types">Types</a></li><li class="private"><a href="#schema_Schema-tree">tree</a></li><li class="private"><a href="#schema_Schema-paths">paths</a></li></ul></div><div class="file private"><a href="#schemadefault-js" class="section">schemadefault.js</a><ul><li class="private"><a href="#schemadefault_exports-system-profile">system.profile</a></li></ul></div><div class="file "><a href="#schematype-js" class="section">schematype.js</a><ul><li class=""><a href="#schematype_SchemaType">SchemaType</a></li><li class=""><a href="#schematype_SchemaType-default">default</a></li><li class=""><a href="#schematype_SchemaType-index">index</a></li><li class=""><a href="#schematype_SchemaType-unique">unique</a></li><li class=""><a href="#schematype_SchemaType-sparse">sparse</a></li><li class=""><a href="#schematype_SchemaType-expires">expires</a></li><li class=""><a href="#schematype_SchemaType-set">set</a></li><li class=""><a href="#schematype_SchemaType-get">get</a></li><li class=""><a href="#schematype_SchemaType-validate">validate</a></li><li class=""><a href="#schematype_SchemaType-required">required</a></li><li class="private"><a href="#schematype_SchemaType-getDefault">getDefault</a></li><li class="private"><a href="#schematype_SchemaType-applySetters">applySetters</a></li><li class="private"><a href="#schematype_SchemaType-applyGetters">applyGetters</a></li><li class=""><a href="#schematype_SchemaType-select">select</a></li><li class="private"><a href="#schematype_SchemaType-doValidate">doValidate</a></li><li class="private"><a href="#schematype_SchemaType-_isRef">_isRef</a></li></ul></div><div class="file "><a href="#types-array-js" class="section">types/array.js</a><ul><li class="private"><a href="#types_array_MongooseArray">MongooseArray</a></li><li class="private"><a href="#types_array_MongooseArray-_cast">_cast</a></li><li class="private"><a href="#types_array_MongooseArray-_markModified">_markModified</a></li><li class="private"><a href="#types_array_MongooseArray-_registerAtomic">_registerAtomic</a></li><li class="private"><a href="#types_array_MongooseArray-hasAtomics">hasAtomics</a></li><li class=""><a href="#types_array_MongooseArray-push">push</a></li><li class=""><a href="#types_array_MongooseArray-nonAtomicPush">nonAtomicPush</a></li><li class=""><a href="#types_array_MongooseArray-%24pop">$pop</a></li><li class=""><a href="#types_array_MongooseArray-pop">pop</a></li><li class=""><a href="#types_array_MongooseArray-%24shift">$shift</a></li><li class=""><a href="#types_array_MongooseArray-shift">shift</a></li><li class=""><a href="#types_array_MongooseArray-remove">remove</a></li><li class=""><a href="#types_array_MongooseArray-pull">pull</a></li><li class=""><a href="#types_array_MongooseArray-splice">splice</a></li><li class=""><a href="#types_array_MongooseArray-unshift">unshift</a></li><li class=""><a href="#types_array_MongooseArray-sort">sort</a></li><li class=""><a href="#types_array_MongooseArray-addToSet">addToSet</a></li><li class=""><a href="#types_array_MongooseArray-toObject">toObject</a></li><li class=""><a href="#types_array_MongooseArray-inspect">inspect</a></li><li class=""><a href="#types_array_MongooseArray-indexOf">indexOf</a></li><li class="private"><a href="#types_array_MongooseArray-_parent">_parent</a></li><li class="private"><a href="#types_array_MongooseArray-_atomics">_atomics</a></li></ul></div><div class="file "><a href="#types-buffer-js" class="section">types/buffer.js</a><ul><li class="private"><a href="#types_buffer_MongooseBuffer">MongooseBuffer</a></li><li class="private"><a href="#types_buffer_MongooseBuffer-_markModified">_markModified</a></li><li class=""><a href="#types_buffer_MongooseBuffer-write">write</a></li><li class=""><a href="#types_buffer_MongooseBuffer-copy">copy</a></li><li class=""><a href="#types_buffer_MongooseBuffer-toObject">toObject</a></li><li class="private"><a href="#types_buffer_MongooseBuffer-_parent">_parent</a></li></ul></div><div class="file "><a href="#types-documentarray-js" class="section">types/documentarray.js</a><ul><li class="private"><a href="#types_documentarray_MongooseDocumentArray">MongooseDocumentArray</a></li><li class="private"><a href="#types_documentarray_MongooseDocumentArray-_cast">_cast</a></li><li class=""><a href="#types_documentarray_MongooseDocumentArray-id">id</a></li><li class=""><a href="#types_documentarray_MongooseDocumentArray-toObject">toObject</a></li><li class=""><a href="#types_documentarray_MongooseDocumentArray-inspect">inspect</a></li><li class=""><a href="#types_documentarray_MongooseDocumentArray-create">create</a></li><li class="private"><a href="#types_documentarray_MongooseDocumentArray-notify">notify</a></li></ul></div><div class="file "><a href="#types-embedded-js" class="section">types/embedded.js</a><ul><li class="private"><a href="#types_embedded_EmbeddedDocument">EmbeddedDocument</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-markModified">markModified</a></li><li class="private"><a href="#types_embedded_EmbeddedDocument-save">save</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-remove">remove</a></li><li class="private"><a href="#types_embedded_EmbeddedDocument-update">update</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-inspect">inspect</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-invalidate">invalidate</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-ownerDocument">ownerDocument</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-parent">parent</a></li><li class=""><a href="#types_embedded_EmbeddedDocument-parentArray">parentArray</a></li></ul></div><div class="file "><a href="#types-objectid-js" class="section">types/objectid.js</a><ul><li class=""><a href="#types_objectid_ObjectId">ObjectId</a></li><li class="private"><a href="#types_objectid_ObjectId-fromString">fromString</a></li><li class="private"><a href="#types_objectid_ObjectId-toString">toString</a></li></ul></div><div class="file "><a href="#utils-js" class="section">utils.js</a><ul><li class="private"><a href="#utils_exports-toCollectionName">toCollectionName</a></li><li class=""><a href="#utils_exports-pluralization">pluralization</a></li><li class=""><a href="#utils_exports-uncountables">uncountables</a></li><li class="private"><a href="#utils_exports-deepEqual">deepEqual</a></li><li class="private"><a href="#utils_exports-clone">clone</a></li><li class="private"><a href="#utils_exports-options">options</a></li><li class="private"><a href="#utils_exports-random">random</a></li><li class="private"><a href="#utils_exports-merge">merge</a></li><li class="private"><a href="#utils_exports-args">args</a></li><li class="private"><a href="#utils_exports-tick">tick</a></li><li class="private"><a href="#utils_exports-isMongooseObject">isMongooseObject</a></li><li class="private"><a href="#utils_exports-expires">expires</a></li></ul></div><div class="file "><a href="#virtualtype-js" class="section">virtualtype.js</a><ul><li class=""><a href="#virtualtype_VirtualType">VirtualType</a></li><li class=""><a href="#virtualtype_VirtualType-get">get</a></li><li class=""><a href="#virtualtype_VirtualType-set">set</a></li><li class=""><a href="#virtualtype_VirtualType-applyGetters">applyGetters</a></li><li class=""><a href="#virtualtype_VirtualType-applySetters">applySetters</a></li></ul></div></div></div><div id="content"><div class="controls"><label><input type="checkbox">private</label></div><ul><li class="module "><a href="https://github.com/LearnBoost/mongoose/tree/3.0.1/index.js" id="index-js">index.js</a><div class="item method public"><h3 id="index_Mongoose"><a href="#index_Mongoose">Mongoose()</a></h3><p>Mongoose constructor.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript"><span class="function"><span class="keyword">function</span> <span class="title">Mongoose</span> <span class="params">()</span> {</span>
<span class="keyword">this</span>.connections = [];
<span class="keyword">this</span>.plugins = [];
<span class="keyword">this</span>.models = {};
<span class="keyword">this</span>.modelSchemas = {};
<span class="keyword">this</span>.options = {};
<span class="keyword">this</span>.createConnection(); <span class="comment">// default connection</span>
};</code></pre></div><div class="description"><p>The exports object of the <code>mongoose</code> module is an instance of this class.<br />Most apps will only use this one instance.</p></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-set"><a href="#index_Mongoose-set">Mongoose#set(<code>key</code>, <code>value</code>)</a></h3><p>Sets mongoose options</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.set = <span class="function"><span class="keyword">function</span> <span class="params">(key, value)</span> {</span>
<span class="keyword">if</span> (arguments.length == <span class="number">1</span>)
<span class="keyword">return</span> <span class="keyword">this</span>.options[key];
<span class="keyword">this</span>.options[key] = value;
<span class="keyword">return</span> <span class="keyword">this</span>;
};</code></pre></div><div class="params"><h4>Parameters:</h4><ul><li><code>key</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span></span></li><li><code>value</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span></span></li></ul></div><div class="description"><h4>Example:</h4>
<pre><code>mongoose.set(<span class="string">'test'</span>, value) <span class="comment">// sets the 'test' option to `value`</span></code></pre></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-get"><a href="#index_Mongoose-get">Mongoose#get(<code>key</code>)</a></h3><p>Gets mongoose options</p><div class="params"><h4>Parameters:</h4><ul><li><code>key</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span></span></li></ul></div><div class="description"><h4>Example:</h4>
<pre><code>mongoose.get(<span class="string">'test'</span>) <span class="comment">// returns the 'test' value</span></code></pre></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-createConnection"><a href="#index_Mongoose-createConnection">Mongoose#createConnection(<code>[uri]</code>)</a></h3><p>Creates a Connection instance.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.createConnection = <span class="function"><span class="keyword">function</span> <span class="params">()</span> {</span>
<span class="keyword">var</span> conn = <span class="keyword">new</span> Connection(<span class="keyword">this</span>);
<span class="keyword">this</span>.connections.push(conn);
<span class="keyword">if</span> (arguments.length) {
<span class="keyword">if</span> (rgxReplSet.test(arguments[<span class="number">0</span>])) {
conn.openSet.apply(conn, arguments);
} <span class="keyword">else</span> {
conn.open.apply(conn, arguments);
}
}
<span class="keyword">return</span> conn;
};</code></pre></div><div class="params"><h4>Parameters:</h4><ul><li><code>[uri]</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span>a mongodb:// URI</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> <<a href="#connection_Connection">Connection</a>> </span><span>the created Connection object</span></li></ul></div><div class="description"><h4>Example:</h4>
<pre><code><span class="comment">// with mongodb:// URI</span>
db = mongoose.createConnection(<span class="string">'mongodb://localhost:port/database'</span>);
<span class="comment">// replica sets</span>
db = mongoose.createConnection(<span class="string">'mongodb://localhost:port/database,mongodb://anotherhost:port,mongodb://yetanother:port'</span>);
<span class="comment">// with [host, database_name[, port] signature</span>
db = mongoose.createConnection(<span class="string">'localhost'</span>, <span class="string">'database'</span>, port)
<span class="comment">// initialize now, connect later</span>
db = mongoose.createConnection();
db.open(<span class="string">'localhost'</span>, <span class="string">'database'</span>, port);</code></pre></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-connect"><a href="#index_Mongoose-connect">Mongoose#connect()</a></h3><p>Opens the default mongoose connection.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.connect = <span class="function"><span class="keyword">function</span> <span class="params">()</span> {</span>
<span class="keyword">var</span> conn = <span class="keyword">this</span>.connection;
<span class="keyword">if</span> (rgxReplSet.test(arguments[<span class="number">0</span>])) {
conn.openSet.apply(conn, arguments);
} <span class="keyword">else</span> {
conn.open.apply(conn, arguments);
}
<span class="keyword">return</span> <span class="keyword">this</span>;
};</code></pre></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> <<a href="#index_Mongoose">Mongoose</a>> </span><span>this</span></li></ul></div><div class="see"><h4>See:</h4><ul class="see"><li><a href="Mongoose#createConnection" title="Mongoose#createConnection">Mongoose#createConnection</a></li></ul></div><div class="description"><p>If arguments are passed, they are proxied to either <a href="#Connection-open">Connection#open</a> or <a href="#Connection-openSet">Connection#openSet</a> appropriately.</p></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-disconnect"><a href="#index_Mongoose-disconnect">Mongoose#disconnect(<code>[fn]</code>)</a></h3><p>Disconnects all connections.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.disconnect = <span class="function"><span class="keyword">function</span> <span class="params">(fn)</span> {</span>
<span class="keyword">var</span> count = <span class="keyword">this</span>.connections.length
, error
<span class="keyword">this</span>.connections.forEach(<span class="keyword">function</span>(conn){
conn.close(<span class="keyword">function</span>(err){
<span class="keyword">if</span> (error) <span class="keyword">return</span>;
<span class="keyword">if</span> (err) {
error = err;
<span class="keyword">if</span> (fn) <span class="keyword">return</span> fn(err);
<span class="keyword">throw</span> err;
}
<span class="keyword">if</span> (fn)
--count || fn();
});
});
<span class="keyword">return</span> <span class="keyword">this</span>;
};</code></pre></div><div class="params"><h4>Parameters:</h4><ul><li><code>[fn]</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function">Function</a>> </span><span>called after all connection close.</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> <<a href="#index_Mongoose">Mongoose</a>> </span><span>this</span></li></ul></div><div class="description"></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-model"><a href="#index_Mongoose-model">Mongoose#model(<code>name</code>, <code>[schema]</code>, <code>[collection]</code>, <code>[skipInit]</code>)</a></h3><p>Defines a model or retrieves it.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.model = function (name, schema, collection, skipInit) {
// normalize collection
if (!(schema instanceof Schema)) {
collection = schema;
schema = false;
}
if ('boolean' === typeof collection) {
skipInit = collection;
collection = null;
}
// look up models for the collection
if (!this.modelSchemas[name]) {
if (!schema && name in SchemaDefaults) {
schema = SchemaDefaults[name];
}
if (schema) {
this.modelSchemas[name] = schema;
for (var i = 0, l = this.plugins.length; i < l; i++) {
schema.plugin(this.plugins[i][0], this.plugins[i][1]);
}
} else {
throw new Error('Schema hasn\'t been registered for model "' + name + '".
'
+ 'Use mongoose.model(name, schema)');
}
}
if (!this.models[name]) {
schema || (schema = this.modelSchemas[name]);
collection || (collection = schema.set('collection') || format(name));
var model = Model.compile(name
, this.modelSchemas[name]
, collection
, this.connection
, this);
if (!skipInit) model.init();
this.models[name] = model;
}
return this.models[name];
};</code></pre></div><div class="params"><h4>Parameters:</h4><ul><li><code>name</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span>model name</span></li><li><code>[schema]</code><span class="types"> <<a href="#schema_Schema">Schema</a>> </span><span></span></li><li><code>[collection]</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>> </span><span>name (optional, induced from model name)</span></li><li><code>[skipInit]</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean">Boolean</a>> </span><span>whether to skip initialization (defaults to false)</span></li></ul></div><div class="description"><p>Models defined on the <code>mongoose</code> instance are available to all connection created by the same <code>mongoose</code> instance.</p>
<h4>Example:</h4>
<pre><code><span class="keyword">var</span> mongoose = require(<span class="string">'mongoose'</span>);
<span class="comment">// define an Actor model with this mongoose instance</span>
mongoose.model(<span class="string">'Actor'</span>, <span class="keyword">new</span> Schema({ name: String }));
<span class="comment">// create a new connection</span>
<span class="keyword">var</span> conn = mongoose.createConnection(..);
<span class="comment">// retrieve the Actor model</span>
<span class="keyword">var</span> Actor = conn.model(<span class="string">'Actor'</span>);</code></pre>
<p>When no <code>collection</code> argument is passed, Mongoose produces a collection name by passing the model <code>name</code> to the <a href="#utils.toCollectionName">utils.toCollectionName</a> method. This method pluralizes the name. Collection names can also be declared through schema options.</p>
<h4>Example:</h4>
<pre><code><span class="keyword">var</span> schema = <span class="keyword">new</span> Schema({ name: String });
schema.set(<span class="string">'collection'</span>, <span class="string">'actor'</span>);</code></pre></div><hr class=""></div><div class="item method public"><h3 id="index_Mongoose-plugin"><a href="#index_Mongoose-plugin">Mongoose#plugin(<code>fn</code>, <code>[opts]</code>)</a></h3><p>Declares a global plugin executed on all Schemas.</p><span class="showcode">show code</span><div class="sourcecode"><pre><code class="javascript">Mongoose.prototype.plugin = <span class="function"><span class="keyword">function</span> <span class="params">(fn, opts)</span> {</span>
<span class="keyword">this</span>.plugins.push([fn, opts]);
<span class="keyword">return</span> <span class="keyword">this</span>;
};</code></pre></div><div class="params"><h4>Parameters:</h4><ul><li><code>fn</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function">Function</a>> </span><span>plugin callback</span></li><li><code>[opts]</code><span class="types"> <<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object">Object</a>> </span><span>optional options</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> <<a href="#index_Mongoose">Mongoose</a>> </span><span>this</span></li></ul></div><div class="description"><p>Equivalent