Your project must be with mongoose 3.8.x. Otherwise you'll have conflicts and it will not work.
Add social interactions (messages and likes) to mongoose document.
You can :
- like/unlike the document
- add/remove comments to the document
- add/remove replies to a comment
- like/unlike a comment or a reply
$ npm install mongoose-rattle-plugin
var mongoose = require('mongoose');
var MongooseRattlePlugin = require('mongoose-rattle-plugin');
var MySchema = new mongoose.Schema();
MySchema.plugin(MongooseRattlePlugin);
MySchema.add({
'myPersonalField': String
});
var MyModel = mongoose.model("MyModel", MySchema);
module.exports = MyModel;
If the name of your User model schema is not "User" or the User's id type is not Schema.Types.ObjectId
, you can specify those as options to the plugin:
MySchema.plugin(MongooseRattlePlugin, { UserSchemaName: 'UserModel', UserIdType: Some.Other.Type });
Please see the specifications here
Recursive comments is not so interesting for user experience and brings development much more difficult when requiring performance.
I think threaded discussions are difficult to follow and doesn't reflect real discussion (or civilized discussion). In real life when a group of people discuss about a subject in civilized society, they stay together in circle and keep talking one after another. While threaded comments should results to a group of people having a discussion confused in different circles where every could participate. That could be interesting but this a mess.
But if you want to develop recursive comments here are interesting links: http://stackoverflow.com/questions/7992185/mongoose-recursive-embedded-document-in-coffeescript http://stackoverflow.com/questions/17416924/create-embedded-docs-with-mongoose-and-express
$ npm install -g mocha coffee-script
$ npm install
$ make test