lineus-disc-model
v1.0.0
Published
helper class for working with mongoose discriminator models and their base classes.
Downloads
5
Readme
DiscModel
DiscModel needs a better name. I suck at names. We'll go with it for now until I ( or you, dear reader ) come up with a better one.
example
The example folder contains what should come close to a working example of how to use it.
help: git clone https://github.com/lineus/discModel.git ./dm
Cloning into './dm'...
remote: Counting objects: 16, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 3), reused 15 (delta 2), pack-reused 0
Unpacking objects: 100% (16/16), done.
help: cd dm/
dm: ls
README.md example/ index.js
dm: cd example/
example: ./discriminator.js
in addEvent
in save callback
{ _id: 5a832e28ab96220e804e5f11,
title: 'plain old event',
description: 'nothing to see here',
eventType: 'event',
__v: 0 }
in addEvent
in save callback
{ sportEvent: { sportName: 'football', firstTeam: 'NFC', secondTeam: 'AFC' },
_id: 5a832e28ab96220e804e5f12,
eventType: 'sports',
title: 'NFL ProBowl',
description: 'Men killing each other for money',
__v: 0 }
in addEvent
in save callback
{ leisureEvent:
{ leisureType: 'hiking',
leisureStart: 'bottom of the mountain',
leisureEnd: 'top of the mountain',
description: 'we all have to die sometime' },
_id: 5a832e28ab96220e804e5f13,
eventType: 'leisure',
title: 'Stranded in the woods',
description: 'Walking outside, fighting off bears',
__v: 0 }
{ sportEvent:
{ sportName: 'football',
firstTeam: 'New England Patriots',
secondTeam: 'Philidelphia Eagles' },
eventType: 'sports',
_id: 5a832e28ab96220e804e5f12,
title: 'NFL Super Bowl',
description: 'Men still killing each other for money',
__v: 0 }
{ leisureEvent:
{ leisureType: 'hiking',
leisureStart: 'bottom of the mountain',
leisureEnd: 'top of the mountain',
description: 'we all have to die sometime' },
eventType: 'leisure',
_id: 5a832e28ab96220e804e5f13,
title: 'Stranded in the woods',
description: 'fresh air is nice',
__v: 0 }
^C
example:
WTF is it?
Basically, it's a constructor that has a base Model, and n+1 discriminator models added to it. The only meaningful usage for it so far, and probably ever, is that future calls to findOneAndUpdate on any of the Models contained within ( base or discriminator ) can be made through one call.
TL;DR
It basically obsolves you of the need to specify which specific model to call findOneAndUpdate on.
Bugs
If you find a bug, or think it's stupid, or want to send me adoration and praise, please feel free to open an issue. Want to contribute? Yeah, that too.