A mongoose.js plugin to automatically generate tags from a document path.
Note: tagging updates occur when document is saved.
npm i --save mongoose-plugin-tags
Example
var tagsPlugin = require('mongoose-plugin-tags');
var schema = Schema({...});
schema.plugin(tagsPlugin[, OPTIONS]);
Kind: inner property of mongoose-plugin-tags
Param | Type | Default | Description |
---|---|---|---|
[options] | object |
||
options.path | string |
"tags" |
the path to create the propterty for storing tags. |
options.optionKey | string |
"tags" |
the path options key to mark paths for inclusion in tagging. |
options.options | object |
property options to set (type will always be an Array of String ). (e.g. {select: false})
|
|
options.match | string |
"/[##][a-z_0-9]+/g" |
the regular expression to match tags. |
options.map | string |
"function" |
the function to strip tag indicators (e.g. '#'). Defaults to stripping the first character from a tag. |
var tagsPlugin = require('mongoose-plugin-tags');
var schema = Schema({
foo: {
type: String,
tags: true // indicates that foo should be included in tagging
},
bar: {type: String} // will not be included
});
schema.plugin(tagsPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo(); // foo.tags --> []
foo.foo = 'I just leanered what a hashtag is #BehindTheTimes'; // foo.tags --> []
foo.save(); // foo.tags --> ['BehindTheTimes']
var tagsPlugin = require('mongoose-plugin-tags');
var schema = Schema({
foo: {
type: String,
tags: true // indicates that foo should be included in tagging
},
bar: {
type: String,
tags: true // indicates that bar should be included in tagging
}
});
schema.plugin(tagsPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo(); // foo.tags --> []
foo.foo = 'You know what grinds my gears? #rant'; // foo.tags --> []
foo.bar = '#People #who #use #hashtags #like #this'; // foo.tags --> []
foo.save(); // foo.tags --> ['rant', 'people', 'who', 'use', 'hashtags', 'like', 'this']
Apache 2.0