Есть ли способ найти все документы в коллекции и отсортировать их по количество запросов, которые они соответствуют?
т.е. документы, соответствующие 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
}]
Мэтт первый, поскольку он удовлетворил оба вопроса.
@Anthony Winzlet Да, спасибо за вашу помощь. Я отредактировал свой основной пост.

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