Я использую MiniMongo через Meteor, и я пытаюсь создать частотную таблицу, основанную на динамическом наборе запросов.Динамическая карта частоты от ключей MongoDB
У меня есть два основных поля: localHour
и localDay
. Я ожидаю много перекрытий, и я хотел бы определить, где происходит большинство перекрытий. Мой текущий способ сделать это так.
if(TempStats.findOne({
localHour: hours,
localDay: day
})){//checks if there is already some entry on the same day/hour
TempStats.update({//if so, we just increment frequency
localHour: hours,
localDay: day
},{
$inc: {freq: 1}
})
} else {//if nothing exists yet, we put in a new entry
TempStats.insert({
localHour: hours,
localDay: day,
freq: 1
});
}
По существу, этот код запускается каждый раз, когда у меня есть новые данные, которые я хочу вставить. Он отлично работает в данный момент, тем самым, после ввода всех данных, я могу сортировать по частоте, чтобы найти то, что чаще всего встречается & дней (TempStats.find({}, {sort: {freq: -1}}).fetch()
).
Однако я ищу больше для поиска по частоте для любого ключа. Например, поиск дня, где все происходит чаще всего, в отличие от даты и часа. С моим нынешним способом сделать это, мне нужно будет иметь несколько баз данных и различные методы вставки для каждого, что немного смешно. Есть ли решение Mongo (в частности MiniMongo) для создания частотных карт на основе ключей?
Спасибо!
Спасибо за помощь! Отличный ответ. – mjkaufer