mongoose-simple-fixtures
v1.9.3
Published
provide initial data for mongoose models
Downloads
19
Maintainers
Readme
mongoose-simple-fixtures
provide initial data for mongoose models
usage
// mongoose is connection and models are already registered
var path = require('path')
, msf = require('mongoose-simple-fixtures')
, dir = path.resolve(__dirname, "./fixtures")
;
msf(dir, function(err, results) {
if (err) console.log("loading data failed");
});
api
msf([mongoose], directory, [validate], [callback])
mongoose
- optional reference to mongoosedirectory
- the path to the data, i.e../fixtures
validate
- optional boolean to disable schema validation (default:null
)callback
- optionalfunction(err, results) {}
callback
receives a results
array. Each object in the array has a name
property with the name of the model and three values, added
, failed
, and skipped
, indicating the number of documents in that collection that were saved, failed to save, or already exist. (mongoose-simple-fixtures
will not add duplicate data by attempting to find a record before the insertion.) The records
inserted are also returned.
validate
indicates whether schema validation should occur before inserting. For example, object reference validators which ensure the referenced document exists may prevent data from being loaded (i.e. cylical dependencies). To prevent this, invoke with the value of false
to temporarily suspend the validators. After loading the data, the schema validation will be set to it's previous value. If no value is specified, mongoose-prime
will not modify the model's validation settings. (cf. #validateBeforeSave
)
setup
mongoose-simple-fixtures
supports simple JSON files as well as extended-JSON
files, the sort that mongoexport
generates.
Each filename in the directory
must correspond to the model name in mongoose. For example, if you used the directory fixtures
and it contained two files:
$ ls fixtures/
templates.json users.json
then mongoose-simple-fixtures
would look for two models on the mongoose reference called templates
and users
. If those models do not exist, the data loading will fail. Any files not ending in .json
are skipped.
extra
mongoose-simple-fixtures
utilizes mongoose-prime
under the hood.