This assumes we have following schema:
- Schema for Messages:
mongoose.Schema({
user: String,
content: String,
creation_time: Date,
to: String,
chat: mongoose.Schema.Types.ObjectId,
read: Boolean
});
- Schema for Thread:
mongoose.Schema({
users: [String]
})
- Update all documents (based on some conditions)
app.get('/api/v1.0/unread/:username/:chat', function (req, res) {
Message.count({chat: req.params.chat, user: { $ne: req.params.username }, read: false}, function(err, messages) {
if(err)
res.send(err);
res.json({ count: messages});
});
});
- Get count of matching Results from messages
//Find messages where chatid matches `chatId` and user is not `username`
Message.count({chat: "chatId", user: { $ne: "username" }, read: false}, function(err, messageCount) {
if(err)
//print err
count = messageCount;
});
- Retrieve all documents based on some condition
Message.find({chat: "chatId"}, functiont(err, messages) {
if(err)
//print err
//documents: messages
});
- Retrieve one document based on condition
Message.findOne({chat: "chatId"}, functiont(err, message) {
if(err)
//print err
//document: message
});