node-mongoose-fixtures
node-mongoose-fixtures copied to clipboard
Create mongoose fixtures from a dataset.
node-mongoose-fixtures
Create mongoose fixtures from a dataset.
This will iteratively insert records through mongoose.
install
npm install node-mongoose-fixtures
usage
var fixtures = require('node-mongoose-fixtures');
fixtures({
<table name>: [
<record>,
<record>
],
<table name>: [
<record>,
<record>
]
});
examples
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
fixtures = require('node-mongoose-fixtures');
// User
var userSchema = new Schema({
username: String,
password: String
});
mongoose.model('users', userSchema);
// Book
var bookSchema = new Schema({
title: String
});
mongoose.model('books', bookSchema);
// Create dataset immediately
fixtures({
users: [
{username: 'one', password: 'pass'},
{username: 'two', password: 'pass'}
],
books: [
{title: 'Enders Game'},
{title: 'Speaker of the Dead'}
]
}, function(err, data) {
// data is an array of all the documents created
});
// Name a dataset for future use
fixtures.save('users', {
users: [
{username: 'one', password: 'pass'},
{username: 'two', password: 'pass'}
]
});
// Use the named dataset
fixtures('users', function(err, data) {
// Again, data is an array of all documents created
});
api
Create Dataset
fixtures(dataset, <mongoose instance>, <callback>);
Immediately creates the documents from the dataset through the mongoose connection.
datasetcan be a hash or a name of a named fixture.mongoose instanceis optional and is a singular instance of mongoose.callbackis an optional function when the action is complete. It's parameters are callback(error, data documents). Both arguments are arrays. The data documents are mongoose documents from the fixture data.
Save a Named Fixture
fixtures.save(name, dataset, <callback>);
Save a fixture to be used for later.
nameis the name of your new named fixture.datasetis the hash of the dataset you want to save.callbackis an optional function when the action is complete. It's parameters are callback(err, old fixtures). The old fixtures are what you've overwritten.
Retrieve a Named Fixture's Dataset
fixtures.get(name, <callback>);
Retrieves a named fixture's dataset. If callback is omitted, this will simply return the named fixture's dataset.
nameis the name of the named fixture you wish to retrieve.callbackis an optional function when the action is complete. It's parameters are callback(err, dataset).
Clear Named Fixture
fixtures.clear(<name>, <callback>);
Clears named fixtures.
nameis optional. It's the name of the named fixture. If omitted, all named fixtures will be cleared.callbackis an optional function when the action is complete. It has no parameters.
Reset Database Collection(s)
fixtures.reset(<model name>, <mongoose instance>, <callback>);
Deletes all documents within a collection.
model nameis optional. It's the name of the collection. If omitted, all collections will be purged.mongoose instanceis optional and is a singular instance of mongoose.callbackis an optional function when the action is complete. It's parameters are the same as the callback frommongoose.Model.remove()
support
Donations are welcome to help support the continuous development of this project.
