Я работал над новостным сайтом, где пользователи могут публиковать статьи и оставлять комментарии. Часть комментариев предназначена для обозначения эмоции к комментарию (один из 5 вариантов: удивленный, счастливый, нейтральный, грустный, сердитый).
Я хочу сделать с этим комментарием «пятерку лучших» статьи с наибольшим количеством эмоций учитываются для определенной c эмоции. И, конечно же, я знаю, что на форуме эмоции всегда «злые», поэтому я должен просто поработать с этим; D, но это часть опыта обучения, и я хотел бы знать, как это сделать.
Итак, для других топ-5 («горячие обсуждения» и «горячие новости») я ввел счетчики в моей схеме статьи, которые увеличиваются либо при добавлении комментария (для «hotDiscussion»), либо когда пользователь указывает что-то как «истинное». горячие новости »(« функция кнопки лайк »). Затем я просто ищу статьи и сортирую по этим счетчикам ...
НО, для этого конкретного c случая, где есть 5 вариантов, как мне отсортировать?!? ... сначала я подумал, что просто добавлю счетчики, когда выбрана определенная эмоция (выпадающее меню). Но тогда все счетчики находятся «в статье» как единое целое, и я не понимаю, как вы можете отсортировать их по всем, чтобы получить исчерпывающий список. Итак, я решил поместить их в объект или массив ... что-то вроде:
Article {
title: String,
author: user...
comments: []
emotions: [ or {
Amazed: amazedCount,
Happy: happyCount,
Neutral: neutralCount,
Sad: sadCount,
Angry: angryCount
} or ]
Тогда, может быть, я смогу найти все статьи и отсортировать их по эмоциям (каким-то образом?), А затем просмотреть верхнюю часть 5 из списка. Но здесь я снова сталкиваюсь с 5 вариантами. И я понятия не имею, как сортировать эмоции? чтобы затем, возможно, в результатах отсортировать по первому (самому высокому) счету. Чтобы затем просмотреть верхнюю часть 5.
Итак, осмотр здесь несколько намекает на то, что я ищу что-то вроде этого
Article {
...
...
emotions: [
{name: Amazed, value: amazedCount},
{name: Happy, value: happyCount},
{name: Neutral, value: neutralCount},
{name: Sad, value: sadCount},
{name: Angry, value: angryCount}
]
И мне немного нравится это направление из-за кнопок Clear «имя» и «значение». Но здесь я сталкиваюсь с той же проблемой, иначе. недостаток знаний ... Потому что:
- как отсортировать по значению второго порядка, как я буду сортировать по значению?
- будет ли одна и та же статья отображаться несколько раз в результат? (я бы хотел предотвратить это, если это вообще возможно, очень загруженная ветка смешанных эмоций не должна появляться дважды по сравнению с менее загруженной, но явно «счастливой» веткой в топ-5).
Надеюсь, кто-нибудь может мне помочь, так как я вижу этот тип поиска ценным в различных ситуациях, а не только для некоторой учебной среды типа «форум» top5.
Для тех, кому нужен более полезный вариант использования '
warehouse{
name: String,
... : ...
parts: [
{name: part1, value: Count}
{name: part2, value: Count}
{etc }
]
}
Формирование списка складов на основе количества деталей (где двойное упоминание определенного склада не проблема); Или скажите список автосалонов с наибольшим количеством доступных марок или моделей (чтобы получить данные для распространения f / e). Или список интернет-магазинов с многозначной рейтинговой системой (f / e: скорость доставки, обслуживание клиентов, цена товаров и т. Д. c.)