Skip to content

Instantly share code, notes, and snippets.

@codeasashu
Created November 10, 2017 08:51
Show Gist options
  • Select an option

  • Save codeasashu/cf992c9e1c67f0b7c37bd0e09354f576 to your computer and use it in GitHub Desktop.

Select an option

Save codeasashu/cf992c9e1c67f0b7c37bd0e09354f576 to your computer and use it in GitHub Desktop.
MongoDB useul queries

This assumes we have following schema:

  1. Schema for Messages:
mongoose.Schema({
    user: String,
    content: String,
    creation_time: Date,
    to: String,
    chat: mongoose.Schema.Types.ObjectId,
    read: Boolean
});
  1. Schema for Thread:
 mongoose.Schema({
    users: [String]
})
  1. 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});
    });
});
  1. 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;
});
  1. Retrieve all documents based on some condition
Message.find({chat: "chatId"}, functiont(err, messages) {
    if(err)
        //print err
   //documents: messages
});
  1. Retrieve one document based on condition
Message.findOne({chat: "chatId"}, functiont(err, message) {
    if(err)
        //print err
   //document: message
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment