【发布时间】:2015-06-16 22:05:23
【问题描述】:
我正在通过 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)解决方案可以根据键进行频率映射?
谢谢!
【问题讨论】:
标签: javascript mongodb meteor minimongo