Skip to content

Instantly share code, notes, and snippets.

@tim-smart
Created October 8, 2010 06:07
Show Gist options
  • Save tim-smart/616425 to your computer and use it in GitHub Desktop.
Save tim-smart/616425 to your computer and use it in GitHub Desktop.
var orm = require('biggie-orm');
orm.connect();
var Deck = orm.model('Deck', {
name: {type: 'string'},
has_many: ['slides'],
indexes: ['name']
});
var Slide = orm.model('Slide', {
position: {type: 'number'},
belongs_to: ['deck'],
indexes: ['position']
});
var my_deck = new Deck({
name: 'My Deck'
});
var some_slides = new orm.Collection([
new Slide({ position: 1 }),
new Slide({ position: 2 }),
new Slide({ position: 3 }),
new Slide({ position: 4 })
]);
my_deck.addSlides(some_slides);
my_deck.save(function (error) {
// Deck + associated slides saved!
// Lets insert a new one at position 3!
my_deck.findSlides({ position: { gt: 2 } }).all(function (error, coll) {
var slide;
for (var i = 0, il = coll.length; i < il; i++) {
slide = coll[i];
slide.position += 1;
}
coll.save(function (err) {
var new_slide = new Slide({ position: 3 });
my_deck.addSlide(new_slide);
my_deck.save(callback);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment