My collection:
{
  title: 'Computers',
  maincategories:[
    {
       title: 'Monitors',
       subcategories:[
         {
            title: '24 inch',
            code: 'AFG'
         }
       ]
    }
  ]
}
I want query the code. The code is just the first part so I want to have all subcategories that contains the given search. So AFG101 would return this subcategories.
My query:
module.exports = (req, res) => {
  var q = {
    'maincategories.subcategories': {
      $elemMatch: {
        code: 'AFG101'
      }
    }
  };
  var query = mongoose.model('TypeCategory').find(q, {'maincategories.$': 1, 'title': 1});
  query.exec((err, docs) => {
    res.status(200).send(docs);
  });
};
My problem:
- How do I search for a part of a string? - AFG101should return all subcategories with property- codecontaining any part of the string. So in this case,- AFGwould be a hit. Same as in this sql question: MySQL: What is a reverse version of LIKE?
- How do I project the subcategories. Current query returns all subcategories. I only want to returns those hitting. 
 
     
     
     
     
    