0

I have a Meteor application with a Mongo database containing documents with the following structure:

_id: "1234567890",
blocks: [{
    type: "block",            
    block_id: "foobar",
    items: [
        {
            type: "sub",
            sub_id: "111",
            items: [
                {
                    type: "question",
                    question_id: "aaa"
                },
                {
                    type: "question",
                    question_id: "bbb"
                }
            ]
        },
        {
            type: "question",
            question_id: "aaa"
        }
    ]
}]

I want to be able to find all the questions with a question_id of 'aaa'. So far I have tried these queries, but am struggling to return any results:

questions = MyColl.find({
     $or: [{
         blocks: {
             items: {
                 $elemMatch: {question_id: 'aaa'}
             }
         }
     },{
         blocks: {
             items: {
                 type: "sub",
                 items: {
                     question_id: 'aaa'
                 }
             }
         }
     }]
 }).count();

Any ideas?

JoeTidee
  • 24,754
  • 25
  • 104
  • 149

1 Answers1

0

This is how I mananged it:

questions = MyColl.find({
             $or: [{
                 'blocks.items': {
                     $elemMatch: {question_id: 'aaa'}
                 }
             },{
                 'blocks.items.items': {
                     $elemMatch: {question_id: 'aaa'}
                 }
             }]
         }).count();
JoeTidee
  • 24,754
  • 25
  • 104
  • 149