我正在通过 Meteor 使用 MiniMongo,并且我正在尝试根据一组动态查询创建一个频率表。
我有两个主要领域,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)解决方案可以根据键进行频率映射?
谢谢!