I have a user model like this:
  user : {
       myArmy : {
           mySoldiers : [
               {
                    positioned : false,
                    soldierInfo : {
                       _id : s99212
                    }
               },
               {
                    positioned : true,
                    soldierInfo : {
                       _id : s99112
                    }
               }
           ]
       }
   },
   user : {
       myArmy : {
           mySoldiers : [
               {
                    positioned : true,
                    soldierInfo : {
                       _id : s99212
                    }
               },
               {
                    positioned : false,
                    soldierInfo : {
                       _id : s99112
                    }
               }
           ]
       }
   }
   ...
I have a query that i want to do to return the user(s) who have soldier id s99212 positioned (true): (could be thousands of those, and i need to read and retrieve them all)
This is my faulty query with mongoose:
var soldierId = s99212;
stream = User.find({
            $and: [
                {'myArmy.mySoldier.positioned': {$ne: null}},
                {'myArmy.mySoldier.soldierInfo._id': soldierId}
            ]
        }).lean(true).stream();
Nothing is returned by this query, should there be another way to do this $and stuff?
How exactly am i suppose to use $elemMatch if at all, should it be instead of the find? (If it worth to mention, i want to return the complete user object, not just parts of it...)
Tried this, crashed my app:
    stream = User.find({
        '$elemMatch': [
            {'myArmy.mySoldiers.pos': {$ne: null}},
            {'myArmy.mySoldiers.soldierInfo._id': soldierId}
        ]
    }).lean(true).stream();
I know i have a small syntax problem, where is it?
 
    