Здравствуйте! Не могу понять, почему моя выборка неверно отрабатывает.
Пишу такой запрос:
documents
.find(
{ "routes._id": req.session.userId, token: req.session.userGroup, "routes.canSee": 'yes' },
{ document: 0 }
)
И хочу получтить документы, в которых условие routes._Id И routes.canSee одновременно соответсвуют. Т.е у поддокумента routes c заданным _id должен быть canSee: 'yes' иначе документ не должен входить в выборку.
Но я получаю выборку, в которой документы проходят по условию ИЛИ "routes._id": req.session.userId ИЛИ "routes.canSee": 'yes'
Т.е я получаю вот такой массив документов:
[{
...какие то поля обьекта документа
routes: [ { _id: '5a721c536ba3e60ae446d66c',
role: 'Доцент',
author: 'Шестопалов Сергей Викторович',
canSee: 'yes',
status: 'waiting' }]
},
{ _id: '5a747c3d182e5a59e7f329c2', // по этому условию прошло
role: 'Профессор',
author: 'Кимкин Василий Викторович',
canSee: 'no', // а по этому нет, но документ вошел в выборку
status: 'waiting' } ]
}]
В чем проблема? С полями документа (не поддокумента) такое прокатывает - что не так с поддокументами?