├── .gitignore ├── .npmignore ├── .travis.yml ├── CNAME ├── CONTRIBUTING.md ├── History.md ├── Makefile ├── README.md ├── benchmarks ├── benchjs │ ├── casting.js │ ├── delete.js │ ├── insert.js │ ├── multiop.js │ ├── population.js │ ├── read.js │ └── update.js ├── bigboard.json ├── clone.js ├── create.js ├── index.js ├── mem.js ├── populate.js └── populationHeavyLoad.js ├── contRun.sh ├── docs ├── 2.7.x │ ├── announcement.html │ ├── docs │ │ ├── api.html │ │ ├── defaults.html │ │ ├── embedded-documents.html │ │ ├── errors.html │ │ ├── finding-documents.html │ │ ├── getters-setters.html │ │ ├── indexes.html │ │ ├── methods-statics.html │ │ ├── middleware.html │ │ ├── migration-1x-2x.html │ │ ├── model-definition.html │ │ ├── plugins.html │ │ ├── populate.html │ │ ├── query.html │ │ ├── querystream.html │ │ ├── schema-options.html │ │ ├── schematypes.html │ │ ├── style │ │ │ ├── foot.html │ │ │ ├── head.html │ │ │ └── style.css │ │ ├── updating-documents.html │ │ ├── validation.html │ │ └── virtuals.html │ ├── images │ │ ├── bg.png │ │ ├── groups.png │ │ ├── logo.png │ │ └── pattern.png │ ├── index.html │ └── template.html ├── 2.8.x │ ├── announcement.html │ ├── docs │ │ ├── api.html │ │ ├── defaults.html │ │ ├── embedded-documents.html │ │ ├── errors.html │ │ ├── finding-documents.html │ │ ├── getters-setters.html │ │ ├── indexes.html │ │ ├── methods-statics.html │ │ ├── middleware.html │ │ ├── migration-1x-2x.html │ │ ├── model-definition.html │ │ ├── plugins.html │ │ ├── populate.html │ │ ├── query.html │ │ ├── querystream.html │ │ ├── schema-options.html │ │ ├── schematypes.html │ │ ├── style │ │ │ ├── foot.html │ │ │ ├── head.html │ │ │ └── style.css │ │ ├── updating-documents.html │ │ ├── validation.html │ │ └── virtuals.html │ ├── images │ │ ├── bg.png │ │ ├── groups.png │ │ ├── logo.png │ │ └── pattern.png │ ├── index.html │ └── template.html ├── 3.0.x │ ├── docs │ │ ├── api.html │ │ ├── api.jade │ │ ├── contributing.html │ │ ├── contributing.jade │ │ ├── css │ │ │ ├── default.css │ │ │ └── guide.css │ │ ├── documents.html │ │ ├── documents.jade │ │ ├── faq.html │ │ ├── faq.jade │ │ ├── guide.html │ │ ├── guide.jade │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── grab │ │ │ │ └── urls │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── index.jade │ │ ├── js │ │ │ └── zepto.min.js │ │ ├── layout.jade │ │ ├── middleware.html │ │ ├── middleware.jade │ │ ├── migration.html │ │ ├── migration.jade │ │ ├── models.html │ │ ├── models.jade │ │ ├── plugins.html │ │ ├── plugins.jade │ │ ├── populate.html │ │ ├── populate.jade │ │ ├── prior.html │ │ ├── prior.jade │ │ ├── queries.html │ │ ├── queries.jade │ │ ├── releases │ │ ├── schematypes.html │ │ ├── schematypes.jade │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ └── prior.js │ │ ├── subdocs.html │ │ ├── subdocs.jade │ │ ├── validation.html │ │ └── validation.jade │ ├── index.html │ └── static.js ├── 3.1.x │ ├── docs │ │ ├── api.html │ │ ├── api.jade │ │ ├── contributing.html │ │ ├── contributing.jade │ │ ├── css │ │ │ ├── default.css │ │ │ └── guide.css │ │ ├── documents.html │ │ ├── documents.jade │ │ ├── faq.html │ │ ├── faq.jade │ │ ├── guide.html │ │ ├── guide.jade │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── grab │ │ │ │ └── urls │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── index.jade │ │ ├── js │ │ │ └── zepto.min.js │ │ ├── layout.jade │ │ ├── middleware.html │ │ ├── middleware.jade │ │ ├── migration.html │ │ ├── migration.jade │ │ ├── models.html │ │ ├── models.jade │ │ ├── plugins.html │ │ ├── plugins.jade │ │ ├── populate.html │ │ ├── populate.jade │ │ ├── prior.html │ │ ├── prior.jade │ │ ├── queries.html │ │ ├── queries.jade │ │ ├── releases │ │ ├── schematypes.html │ │ ├── schematypes.jade │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ └── prior.js │ │ ├── subdocs.html │ │ ├── subdocs.jade │ │ ├── validation.html │ │ └── validation.jade │ ├── index.html │ └── static.js ├── 3.2.x │ ├── docs │ │ ├── api.html │ │ ├── api.jade │ │ ├── connections.html │ │ ├── connections.jade │ │ ├── contributing.html │ │ ├── contributing.jade │ │ ├── css │ │ │ ├── default.css │ │ │ ├── guide.css │ │ │ └── style.css │ │ ├── documents.html │ │ ├── documents.jade │ │ ├── faq.html │ │ ├── faq.jade │ │ ├── guide.html │ │ ├── guide.jade │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── attictv.png │ │ │ │ ├── bozuko.png │ │ │ │ ├── calllist.png │ │ │ │ ├── cldfy.png │ │ │ │ ├── clickdummy.png │ │ │ │ ├── cyborgvision.png │ │ │ │ ├── furbabyrescue.png │ │ │ │ ├── geeklist.png │ │ │ │ ├── grab │ │ │ │ ├── growthegamegolf.png │ │ │ │ ├── kyyti.png │ │ │ │ ├── learnboost.png │ │ │ │ ├── linkr.png │ │ │ │ ├── lists.png │ │ │ │ ├── localresponse.png │ │ │ │ ├── nextdays.png │ │ │ │ ├── nimblequiz.png │ │ │ │ ├── nuorder.png │ │ │ │ ├── scottyapp.png │ │ │ │ ├── seelio.png │ │ │ │ ├── selectvids.png │ │ │ │ ├── sharelatex.png │ │ │ │ ├── shoejitsu.png │ │ │ │ ├── skim.png │ │ │ │ ├── stachify.png │ │ │ │ ├── storify.png │ │ │ │ ├── todaylaunch.png │ │ │ │ ├── treinosmart.png │ │ │ │ ├── upcload.png │ │ │ │ ├── urls │ │ │ │ └── wavo.png │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── index.jade │ │ ├── js │ │ │ └── zepto.min.js │ │ ├── layout.jade │ │ ├── middleware.html │ │ ├── middleware.jade │ │ ├── migration.html │ │ ├── migration.jade │ │ ├── models.html │ │ ├── models.jade │ │ ├── plugins.html │ │ ├── plugins.jade │ │ ├── populate.html │ │ ├── populate.jade │ │ ├── prior.html │ │ ├── prior.jade │ │ ├── queries.html │ │ ├── queries.jade │ │ ├── releases │ │ ├── schematypes.html │ │ ├── schematypes.jade │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ └── prior.js │ │ ├── subdocs.html │ │ ├── subdocs.jade │ │ ├── validation.html │ │ └── validation.jade │ ├── index.html │ └── static.js ├── 3.3.x │ ├── docs │ │ ├── api.html │ │ ├── api.jade │ │ ├── connections.html │ │ ├── connections.jade │ │ ├── contributing.html │ │ ├── contributing.jade │ │ ├── css │ │ │ ├── default.css │ │ │ ├── guide.css │ │ │ └── style.css │ │ ├── documents.html │ │ ├── documents.jade │ │ ├── faq.html │ │ ├── faq.jade │ │ ├── guide.html │ │ ├── guide.jade │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── attictv.png │ │ │ │ ├── bozuko.png │ │ │ │ ├── calllist.png │ │ │ │ ├── cldfy.png │ │ │ │ ├── clickdummy.png │ │ │ │ ├── cyborgvision.png │ │ │ │ ├── dashku.png │ │ │ │ ├── firstimpression.png │ │ │ │ ├── furbabyrescue.png │ │ │ │ ├── geeklist.png │ │ │ │ ├── grab │ │ │ │ ├── growthegamegolf.png │ │ │ │ ├── h_bozuko.jpg │ │ │ │ ├── h_geeklist.png │ │ │ │ ├── h_learnboost.png │ │ │ │ ├── h_mcds.png │ │ │ │ ├── h_shoejitsu.png │ │ │ │ ├── h_storify.jpg │ │ │ │ ├── kyyti.png │ │ │ │ ├── learnboost.png │ │ │ │ ├── linkr.png │ │ │ │ ├── lists.png │ │ │ │ ├── localresponse.png │ │ │ │ ├── mcdonalds.png │ │ │ │ ├── muffle.png │ │ │ │ ├── nextdays.png │ │ │ │ ├── nimblequiz.png │ │ │ │ ├── nuorder.png │ │ │ │ ├── scottyapp.png │ │ │ │ ├── seelio.png │ │ │ │ ├── selectvids.png │ │ │ │ ├── sharelatex.png │ │ │ │ ├── shoejitsu.png │ │ │ │ ├── skim.png │ │ │ │ ├── squadsheet.png │ │ │ │ ├── stachify.png │ │ │ │ ├── storify.png │ │ │ │ ├── todaylaunch.png │ │ │ │ ├── treinosmart.png │ │ │ │ ├── upcload.png │ │ │ │ ├── urls │ │ │ │ ├── veriwalk.png │ │ │ │ ├── wavo.png │ │ │ │ └── zootify.png │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── index.jade │ │ ├── js │ │ │ ├── cookies.min.js │ │ │ └── zepto.min.js │ │ ├── layout.jade │ │ ├── middleware.html │ │ ├── middleware.jade │ │ ├── migration.html │ │ ├── migration.jade │ │ ├── models.html │ │ ├── models.jade │ │ ├── plugins.html │ │ ├── plugins.jade │ │ ├── populate.html │ │ ├── populate.jade │ │ ├── prior.html │ │ ├── prior.jade │ │ ├── production.html │ │ ├── production.jade │ │ ├── queries.html │ │ ├── queries.jade │ │ ├── releases │ │ ├── schematypes.html │ │ ├── schematypes.jade │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ ├── prior.js │ │ │ └── production.js │ │ ├── subdocs.html │ │ ├── subdocs.jade │ │ ├── validation.html │ │ ├── validation.jade │ │ └── website.js │ ├── index.html │ └── static.js ├── 3.4.x │ ├── docs │ │ ├── api.html │ │ ├── connections.html │ │ ├── contributing.html │ │ ├── css │ │ │ ├── default.css │ │ │ ├── guide.css │ │ │ └── style.css │ │ ├── documents.html │ │ ├── faq.html │ │ ├── guide.html │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── attictv.png │ │ │ │ ├── bozuko.png │ │ │ │ ├── calllist.png │ │ │ │ ├── cldfy.png │ │ │ │ ├── clickdummy.png │ │ │ │ ├── cyborgvision.png │ │ │ │ ├── dashku.png │ │ │ │ ├── firstimpression.png │ │ │ │ ├── furbabyrescue.png │ │ │ │ ├── geeklist.png │ │ │ │ ├── grab │ │ │ │ ├── growthegamegolf.png │ │ │ │ ├── h_bozuko.jpg │ │ │ │ ├── h_geeklist.png │ │ │ │ ├── h_learnboost.png │ │ │ │ ├── h_mcds.png │ │ │ │ ├── h_shoejitsu.png │ │ │ │ ├── h_storify.jpg │ │ │ │ ├── kyyti.png │ │ │ │ ├── learnboost.png │ │ │ │ ├── linkr.png │ │ │ │ ├── lists.png │ │ │ │ ├── localresponse.png │ │ │ │ ├── mcdonalds.png │ │ │ │ ├── muffle.png │ │ │ │ ├── nextdays.png │ │ │ │ ├── nimblequiz.png │ │ │ │ ├── nuorder.png │ │ │ │ ├── scottyapp.png │ │ │ │ ├── seelio.png │ │ │ │ ├── selectvids.png │ │ │ │ ├── sharelatex.png │ │ │ │ ├── shoejitsu.png │ │ │ │ ├── skim.png │ │ │ │ ├── squadsheet.png │ │ │ │ ├── stachify.png │ │ │ │ ├── storify.png │ │ │ │ ├── todaylaunch.png │ │ │ │ ├── treinosmart.png │ │ │ │ ├── upcload.png │ │ │ │ ├── urls │ │ │ │ ├── veriwalk.png │ │ │ │ ├── wavo.png │ │ │ │ └── zootify.png │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── js │ │ │ ├── cookies.min.js │ │ │ └── zepto.min.js │ │ ├── middleware.html │ │ ├── migration.html │ │ ├── models.html │ │ ├── plugins.html │ │ ├── populate.html │ │ ├── prior.html │ │ ├── production.html │ │ ├── queries.html │ │ ├── releases │ │ ├── schematypes.html │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ ├── prior.js │ │ │ └── production.js │ │ ├── subdocs.html │ │ ├── validation.html │ │ └── website.js │ ├── index.html │ └── static.js ├── 3.5.x │ ├── docs │ │ ├── api.html │ │ ├── connections.html │ │ ├── contributing.html │ │ ├── css │ │ │ ├── api.css │ │ │ ├── default.css │ │ │ ├── guide.css │ │ │ └── style.css │ │ ├── documents.html │ │ ├── faq.html │ │ ├── guide.html │ │ ├── helpers │ │ │ ├── filters.js │ │ │ ├── highlight.js │ │ │ ├── href.js │ │ │ ├── klass.js │ │ │ └── linktype.js │ │ ├── images │ │ │ ├── apps │ │ │ │ ├── attictv.png │ │ │ │ ├── bozuko.png │ │ │ │ ├── calllist.png │ │ │ │ ├── cldfy.png │ │ │ │ ├── clickdummy.png │ │ │ │ ├── cyborgvision.png │ │ │ │ ├── dashku.png │ │ │ │ ├── firstimpression.png │ │ │ │ ├── furbabyrescue.png │ │ │ │ ├── geeklist.png │ │ │ │ ├── grab │ │ │ │ ├── growthegamegolf.png │ │ │ │ ├── h_bozuko.jpg │ │ │ │ ├── h_geeklist.png │ │ │ │ ├── h_learnboost.png │ │ │ │ ├── h_mcds.png │ │ │ │ ├── h_shoejitsu.png │ │ │ │ ├── h_storify.jpg │ │ │ │ ├── knack.png │ │ │ │ ├── kyyti.png │ │ │ │ ├── learnboost.png │ │ │ │ ├── linkr.png │ │ │ │ ├── lists.png │ │ │ │ ├── localresponse.png │ │ │ │ ├── mcdonalds.png │ │ │ │ ├── moveline.png │ │ │ │ ├── muffle.png │ │ │ │ ├── mybrickbuilds.png │ │ │ │ ├── nextdays.png │ │ │ │ ├── nimblequiz.png │ │ │ │ ├── nuorder.png │ │ │ │ ├── panemerkille.png │ │ │ │ ├── pictorious.png │ │ │ │ ├── scottyapp.png │ │ │ │ ├── seelio.png │ │ │ │ ├── selectvids.png │ │ │ │ ├── sharelatex.png │ │ │ │ ├── shoejitsu.png │ │ │ │ ├── skim.png │ │ │ │ ├── squadsheet.png │ │ │ │ ├── stachify.png │ │ │ │ ├── storify.png │ │ │ │ ├── todaylaunch.png │ │ │ │ ├── treinosmart.png │ │ │ │ ├── upcload.png │ │ │ │ ├── urls │ │ │ │ ├── veriwalk.png │ │ │ │ ├── wavo.png │ │ │ │ └── zootify.png │ │ │ └── square_bg.png │ │ ├── includes │ │ │ ├── googleanalytics.jade │ │ │ └── nav.jade │ │ ├── index.html │ │ ├── js │ │ │ ├── cookies.min.js │ │ │ └── zepto.min.js │ │ ├── middleware.html │ │ ├── migration.html │ │ ├── models.html │ │ ├── plugins.html │ │ ├── populate.html │ │ ├── prior.html │ │ ├── production.html │ │ ├── queries.html │ │ ├── schematypes.html │ │ ├── source │ │ │ ├── _docs │ │ │ ├── api.js │ │ │ ├── home.js │ │ │ ├── index.js │ │ │ ├── prior.js │ │ │ └── production.js │ │ ├── subdocs.html │ │ └── validation.html │ ├── index.html │ └── static.js ├── api.html ├── api.jade ├── connections.jade ├── contributing.html ├── contributing.jade ├── css │ ├── api.css │ ├── default.css │ ├── guide.css │ └── style.css ├── documents.html ├── documents.jade ├── faq.html ├── faq.jade ├── guide.html ├── guide.jade ├── helpers │ ├── filters.js │ ├── highlight.js │ ├── href.js │ ├── klass.js │ └── linktype.js ├── images │ ├── apps │ │ ├── attictv.png │ │ ├── bozuko.png │ │ ├── calllist.png │ │ ├── cldfy.png │ │ ├── clickdummy.png │ │ ├── cyborgvision.png │ │ ├── dashku.png │ │ ├── firstimpression.png │ │ ├── furbabyrescue.png │ │ ├── geeklist.png │ │ ├── grab │ │ ├── growthegamegolf.png │ │ ├── h_bozuko.jpg │ │ ├── h_geeklist.png │ │ ├── h_learnboost.png │ │ ├── h_mcds.png │ │ ├── h_shoejitsu.png │ │ ├── h_storify.jpg │ │ ├── knack.png │ │ ├── kyyti.png │ │ ├── learnboost.png │ │ ├── linkr.png │ │ ├── lists.png │ │ ├── localresponse.png │ │ ├── mcdonalds.png │ │ ├── moveline.png │ │ ├── muffle.png │ │ ├── mybrickbuilds.png │ │ ├── nextdays.png │ │ ├── nimblequiz.png │ │ ├── nuorder.png │ │ ├── panemerkille.png │ │ ├── pictorious.png │ │ ├── scottyapp.png │ │ ├── seelio.png │ │ ├── selectvids.png │ │ ├── sharelatex.png │ │ ├── shoejitsu.png │ │ ├── skim.png │ │ ├── squadsheet.png │ │ ├── stachify.png │ │ ├── storify.png │ │ ├── todaylaunch.png │ │ ├── treinosmart.png │ │ ├── upcload.png │ │ ├── urls │ │ ├── veriwalk.png │ │ ├── wavo.png │ │ └── zootify.png │ └── square_bg.png ├── includes │ ├── googleanalytics.jade │ ├── googlesearch.jade │ └── nav.jade ├── index.html ├── index.jade ├── js │ ├── cookies.min.js │ └── zepto.min.js ├── layout.jade ├── middleware.html ├── middleware.jade ├── migration.html ├── migration.jade ├── models.html ├── models.jade ├── plugins.html ├── plugins.jade ├── populate.html ├── populate.jade ├── prior.html ├── prior.jade ├── production.jade ├── queries.html ├── queries.jade ├── redirect.jade ├── releases ├── schematypes.html ├── schematypes.jade ├── source │ ├── api.js │ ├── home.js │ ├── index.js │ ├── prior.js │ └── production.js ├── subdocs.html ├── subdocs.jade ├── validation.html ├── validation.jade └── website.js ├── examples ├── README.md ├── aggregate │ ├── aggregate.js │ ├── package.json │ └── person.js ├── doc-methods.js ├── express │ ├── README.md │ └── connection-sharing │ │ ├── README.md │ │ ├── app.js │ │ ├── modelA.js │ │ ├── package.json │ │ └── routes.js ├── geospatial │ ├── geoJSONSchema.js │ ├── geoJSONexample.js │ ├── geospatial.js │ ├── package.json │ └── person.js ├── globalschemas │ ├── gs_example.js │ └── person.js ├── lean │ ├── lean.js │ ├── package.json │ └── person.js ├── mapreduce │ ├── mapreduce.js │ ├── package.json │ └── person.js ├── population │ ├── population-across-three-collections.js │ ├── population-basic.js │ ├── population-of-existing-doc.js │ ├── population-of-multiple-existing-docs.js │ ├── population-options.js │ └── population-plain-objects.js ├── promises │ ├── package.json │ ├── person.js │ └── promise.js ├── querybuilder │ ├── package.json │ ├── person.js │ └── querybuilder.js ├── replicasets │ ├── package.json │ ├── person.js │ └── replica-sets.js ├── schema │ ├── schema.js │ └── storing-schemas-as-json │ │ ├── index.js │ │ └── schema.json └── statics │ ├── person.js │ └── statics.js ├── index.html ├── index.jade ├── index.js ├── lib ├── aggregate.js ├── collection.js ├── connection.js ├── connectionstate.js ├── document.js ├── drivers │ ├── SPEC.md │ └── node-mongodb-native │ │ ├── binary.js │ │ ├── collection.js │ │ ├── connection.js │ │ └── objectid.js ├── error.js ├── error │ ├── cast.js │ ├── divergentArray.js │ ├── messages.js │ ├── missingSchema.js │ ├── overwriteModel.js │ ├── validation.js │ ├── validator.js │ └── version.js ├── index.js ├── internal.js ├── model.js ├── promise.js ├── query.js ├── queryhelpers.js ├── querystream.js ├── schema.js ├── schema │ ├── array.js │ ├── boolean.js │ ├── buffer.js │ ├── date.js │ ├── documentarray.js │ ├── index.js │ ├── mixed.js │ ├── number.js │ ├── objectid.js │ └── string.js ├── schemadefault.js ├── schematype.js ├── statemachine.js ├── types │ ├── array.js │ ├── buffer.js │ ├── documentarray.js │ ├── embedded.js │ ├── index.js │ └── objectid.js ├── utils.js └── virtualtype.js ├── package.json ├── release-items.md ├── static.js ├── test ├── _goosetest.js ├── aggregate.test.js ├── collection.capped.test.js ├── collection.test.js ├── common.js ├── connection.auth.test.js ├── connection.reconnect.test.js ├── connection.test.js ├── crash.test.js ├── createtest ├── document.hooks.test.js ├── document.isselected.test.js ├── document.modified.test.js ├── document.populate.test.js ├── document.strict.test.js ├── document.test.js ├── drivers │ └── node-mongodb-native │ │ ├── collection.test.js │ │ └── connection.test.js ├── dropdb.js ├── errors.mongoose.test.js ├── errors.validation.test.js ├── gh-1408.test.js ├── index.test.js ├── model.aggregate.test.js ├── model.create.test.js ├── model.discriminator.querying.test.js ├── model.discriminator.test.js ├── model.field.selection.test.js ├── model.findAndRemoveOne.test.js ├── model.findAndUpdateOne.test.js ├── model.geonear.test.js ├── model.geosearch.test.js ├── model.indexes.test.js ├── model.mapreduce.test.js ├── model.middleware.test.js ├── model.populate.divergent.test.js ├── model.populate.setting.test.js ├── model.populate.test.js ├── model.query.casting.test.js ├── model.querying.test.js ├── model.stream.test.js ├── model.test.js ├── model.update.test.js ├── object.create.null.test.js ├── promise.test.js ├── query.test.js ├── query.toconstructor.test.js ├── schema.boolean.test.js ├── schema.documentarray.test.js ├── schema.mixed.test.js ├── schema.onthefly.test.js ├── schema.select.test.js ├── schema.test.js ├── schema.type.test.js ├── schema.validation.test.js ├── shard.test.js ├── triage │ └── .gitignore ├── types.array.test.js ├── types.buffer.test.js ├── types.document.test.js ├── types.documentarray.test.js ├── types.number.test.js ├── utils.test.js └── versioning.test.js └── website.js /.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | **.swp 3 | *.sw* 4 | node_modules/ 5 | *.orig 6 | benchmarks/benchmarks 7 | benchmarks/benchmarks2 8 | benchmarks/benchmarks3 9 | benchmarks/v8.log 10 | .DS_Store 11 | docs/*.json 12 | docs/source/_docs 13 | docs/*.html 14 | tags 15 | test/triage/*.js 16 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | **.swp 3 | *.sw* 4 | *.orig 5 | .DS_Store 6 | node_modules/ 7 | benchmarks/ 8 | docs/ 9 | test/ 10 | Makefile 11 | CNAME 12 | index.html 13 | index.jade 14 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 0.8 4 | - 0.10 5 | services: 6 | - mongodb 7 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | mongoosejs.com 2 | -------------------------------------------------------------------------------- /benchmarks/clone.js: -------------------------------------------------------------------------------- 1 | 2 | var mongoose = require('../') 3 | , utils = require('../lib/utils') 4 | , clone = utils.clone 5 | , Schema = mongoose.Schema 6 | 7 | var DocSchema = new Schema({ 8 | title: String 9 | }); 10 | 11 | var AllSchema = new Schema({ 12 | string: { type: String, required: true } 13 | , number: { type: Number, min: 10 } 14 | , date : Date 15 | , bool : Boolean 16 | , buffer: Buffer 17 | , objectid: Schema.ObjectId 18 | , array : Array 19 | , strings: [String] 20 | , numbers: [Number] 21 | , dates : [Date] 22 | , bools : [Boolean] 23 | , buffers: [Buffer] 24 | , objectids: [Schema.ObjectId] 25 | , docs : { type: [DocSchema], validate: function () { return true }} 26 | , s: { nest: String } 27 | }); 28 | 29 | var A = mongoose.model('A', AllSchema); 30 | var a = new A({ 31 | string: "hello world" 32 | , number: 444848484 33 | , date: new Date 34 | , bool: true 35 | , buffer: new Buffer(0) 36 | , objectid: new mongoose.Types.ObjectId() 37 | , array: [4,{},[],"asdfa"] 38 | , strings: ["one","two","three","four"] 39 | , numbers:[72,6493,83984643,348282.55] 40 | , dates:[new Date, new Date, new Date] 41 | , bools:[true, false, false, true, true] 42 | , buffers: [new Buffer([33]), new Buffer([12])] 43 | , objectids: [new mongoose.Types.ObjectId] 44 | , docs: [ {title: "yo"}, {title:"nowafasdi0fas asjkdfla fa" }] 45 | , s: { nest: 'hello there everyone!' } 46 | }); 47 | 48 | var start = new Date; 49 | var total = 100000; 50 | var i = total; 51 | 52 | for (var i = 0, len = total; i < len; ++i) { 53 | a.toObject({ depopulate: true }); 54 | } 55 | 56 | var time= (new Date - start)/1000; 57 | console.error('took %d seconds for %d docs (%d dps)', time, total, total/time); 58 | var used = process.memoryUsage(); 59 | 60 | // --trace-opt --trace-deopt --trace-bailout 61 | -------------------------------------------------------------------------------- /benchmarks/create.js: -------------------------------------------------------------------------------- 1 | //require('nodetime').profile(); 2 | 3 | var mongoose = require('../../mongoose') 4 | var fs = require('fs') 5 | 6 | var Schema = mongoose.Schema; 7 | 8 | CheckItem = new Schema({ 9 | name: { type: String }, 10 | type: { type: String }, 11 | pos: { type: Number }, 12 | }); 13 | 14 | Checklist = new Schema({ 15 | name: { type: String }, 16 | checkItems: { type: [CheckItem] } 17 | }); 18 | 19 | Board = new Schema({ 20 | checklists: { type: [Checklist] } 21 | }); 22 | 23 | var start1 = new Date(); 24 | var Board = mongoose.model('Board', Board); 25 | //var Cl = mongoose.model('Checklist', Checklist); 26 | var doc = JSON.parse(fs.readFileSync(__dirname + '/bigboard.json')); 27 | var time1 = (new Date - start1); 28 | //console.error('reading from disk and parsing JSON took %d ms', time1); 29 | 30 | var start2 = new Date(); 31 | for (var i = 0; i < 1000; ++i) { 32 | var board = new Board(doc); 33 | } 34 | var time2 = (new Date - start2); 35 | console.error('creation of large object took %d ms', time2); 36 | -------------------------------------------------------------------------------- /contRun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | make test 4 | 5 | ret=$? 6 | 7 | while [ $ret == 0 ]; do 8 | make test 9 | ret=$? 10 | done 11 | -------------------------------------------------------------------------------- /docs/2.7.x/announcement.html: -------------------------------------------------------------------------------- 1 |