У меня есть куча данных репозитория, которые я выписал из Github. У каждого репозитория есть ключ language
, и с pymongo я могу перечислить все языки в моей базе данных с помощью db.distinct('language')
. Я хотел бы отсортировать список по количеству вхождений, так что первым языком является мой список, это язык, связанный с большинством репозиториев. Возможно ли это сделать в одном запросе вместо запроса базы данных для подсчета каждого языка?MongoDB: Сортировка отдельных ключей по количеству событий
2
A
ответ
1
Одним из возможных решений является простая карта/сокращение. Преимущество состоит в том, что вы можете использовать его для агрегирования дополнительной информации, такой как количество коммитов, коммиттеров, файлов ...
Возможно, это слишком тяжелое решение для того, что вы хотите. Я не совсем знаком с современной структурой агрегации, но считаю, что если есть решение, отличное от map/reduce, вот где вы, скорее всего, его найдете.
3
Благодаря Николасу Ринаудо и Джонни ХК, я смог выяснить это решение. Идея состоит в том, чтобы группировать каждый репозиторий на основе языка и суммировать количество документов. Затем группы могут быть отсортированы по новому ключу.
db_languages = db.aggregate([
{"$group": {
"_id": {
"language": "$language",
},
"num_repos": {
"$sum": 1,
}
}},
{"$sort": {"num_repos": -1}}
])
Смежные вопросы
- 1. Сортировка внешних ключей по количеству выражений (SQL)
- 2. Сортировка по количеству повторений
- 3. Сортировка по количеству условий
- 4. MySQL: Сортировка по количеству
- 5. Сортировка списка по карте, сортировка по количеству
- 6. Сортировка отдельных значений порядка по количеству с использованием выражения Лямбда
- 7. Mongo DB: Сортировка по количеству совпадений
- 8. Сортировка искажений по количеству взаимосвязей
- 9. Сортировка по количеству взаимных друзей
- 10. Сортировка строк по количеству символов
- 11. Сортировка LINQ по количеству показаний
- 12. Сортировка массива по наибольшему количеству
- 13. Сортировка массива По Количеству значений
- 14. Сортировка Datatable по количеству не по алфавиту
- 15. MongoDB получить количество отдельных ключей в массиве
- 16. Spark как сгруппировать по произвольному количеству ключей?
- 17. MongoDB Сортировка по значению
- 18. Сортировка по GeoWithin MongoDB
- 19. MongoDB сортировка по детям
- 20. Сортировка данных MYSQL по количеству записей
- 21. Сортировка списка выбора по количеству и значению
- 22. Сортировка строк в ArrayList по количеству гласных
- 23. Сортировка микропотоков по количеству комментариев (Rails)?
- 24. Сортировка массива по количеству символов в значении
- 25. Фильтр PHP и сортировка по минимальному количеству
- 26. Сортировка массива результатов поиска по количеству совпадений?
- 27. Сортировка списка строк по количеству слов
- 28. Сортировка сообщений по максимальному количеству голосов?
- 29. Сортировка результатов запроса по количеству голосов (ассоциаций)
- 30. Сортировка по количеству истинных булевых элементов?
См http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.aggregate – JohnnyHK