Подсчет количества запросов, удовлетворенных $ или MongoDB

Есть ли способ найти все документы в коллекции и отсортировать их по количество запросов, которые они соответствуют?

т.е. документы, соответствующие 10 запросам вверху, документы, соответствующие 1 внизу

Я пытался реализовать это через конвейер агрегации, но я застрял.

Например, скажем, я хотел найти пользователей в возрасте от 18 до 24 лет, а также проверить наличие строки с помощью регулярного выражения:

db.users. aggregate({
    "$match": {
        '$or': [
            {
                "name": /.*m.*/
            },
            {
                'age': {
                    '$gt': 18,
                    '$lt': 24
                }
            }
        ]
    }
    ...

Я не уверен, куда пойти дальше, чем это

Любая помощь приветствуется

Редактировать:

Вот образец коллекции:

users = [{
    'name': 'bob',
    'age': 19
},
{
    'name': 'susan',
    'age': 16
},
{
    'name': 'mark',
    'age': 25
},
{
    'name': 'matt',
    'age': 19
}]

Пример вывода после проверки запроса 1: regex /.*m.*/, запроса 2: 18 < age < 24:

[{
    'name': 'matt',
    'age': 19,
    'matched': 2
},
{
    'name': 'bob',
    'age': 19,
    'matched': 1
},
{
    'name': 'mark',
    'age': 25,
    'matched': 1
}]

Мэтт первый, поскольку он удовлетворил оба вопроса.

Не могли бы вы добавить несколько примеров коллекции и ожидаемого результата.

Ashh 03.11.2018 17:37

@Anthony Winzlet Да, спасибо за вашу помощь. Я отредактировал свой основной пост.

micah5 03.11.2018 17:49
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
2
34
0

Другие вопросы по теме