UNPKG

mongoose

Version:

Mongoose MongoDB ODM

386 lines (356 loc) 676 kB
<!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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </span><span></span></li><li><code>value</code><span class="types"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </span><span>a mongodb:// URI</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> &lt;<a href="#connection_Connection">Connection</a>&gt; </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"> &lt;<a href="#index_Mongoose">Mongoose</a>&gt; </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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function">Function</a>&gt; </span><span>called after all connection close.</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> &lt;<a href="#index_Mongoose">Mongoose</a>&gt; </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 &amp;&amp; name in SchemaDefaults) { schema = SchemaDefaults[name]; } if (schema) { this.modelSchemas[name] = schema; for (var i = 0, l = this.plugins.length; i &lt; 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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </span><span>model name</span></li><li><code>[schema]</code><span class="types"> &lt;<a href="#schema_Schema">Schema</a>&gt; </span><span></span></li><li><code>[collection]</code><span class="types"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">String</a>&gt; </span><span>name (optional, induced from model name)</span></li><li><code>[skipInit]</code><span class="types"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Boolean">Boolean</a>&gt; </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"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function">Function</a>&gt; </span><span>plugin callback</span></li><li><code>[opts]</code><span class="types"> &lt;<a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object">Object</a>&gt; </span><span>optional options</span></li></ul></div><div class="returns"><h4>Returns:</h4><ul><li><span class="types"> &lt;<a href="#index_Mongoose">Mongoose</a>&gt; </span><span>this</span></li></ul></div><div class="description"><p>Equivalent