Вот мой скриншот,
Я не понимаю, почему иногда значение хранится как число, а иногда как NumberInt.
И когда я попробую этот запрос для поиска
{
"price.egglessPrice" : { '$gt' : 360, '$lt':370}
}
Я всегда получаю результат, включая скриншот выше. но это не правильно. Там нет цены лежит от 360 до 370.
Причина различного типа данных числового значения зависит от того, как вы храните свое значение. И вы должны использовать $ elemMatch здесь для сопоставления результатов:
db.collection.find({
price: {
$elemMatch: {egglessPrice: { $gt: 360, $lt: 370}}
}
});
Других решений пока нет …