我有以下mongo-db模式
{
"user" : ObjectId("52aaea01701054a10a002212"),
"type" :"go_to_page",
"params" :
{
"page" : "users"
},
"created" :ISODate("2013-12-30T05:30:24.324Z")
}
"页面"可以有四个值中的任何一个,如个人资料、事件、人物和呐喊。因此,如果用户从人员页面跳到配置文件页面,我可以将他们保存到mongo数据库中,现在我可以拥有用户活动的日志。现在,我必须找到用户在上述四个页面上花费的确切时间(以分钟为单位(。
mongo中有没有任何方法可以输入两个给定的日期,并以分钟为单位返回两个日期之间的时间跨度。即,如果我给出的数据为2014-04-29 23:50:00和2014-04-30 00:00:00,那么它应该返回10,因为两个给定日期之间有10分钟。如能在这方面提供任何帮助,我们将不胜感激。
我在mongo 2.4.8中尝试了以下代码,发现当您计算两个日期之间的差异时,它会以毫秒为单位返回结果,然后编写以下函数以在几分钟内获取数据。在这里,我假设您的文档中有两个日期字段"输入"(当用户输入时(和"左"(当使用者离开时(,最后您计算以分钟为单位的差异,并将"时间段"存储在同一文档中
db.collectioName.find().forEach(function(d){
//you can use Math.ceil or Math.floor
d.timespent=Math.round((d.visited-d.left)/60000);
db.collectioName.save(d);
});
希望它能帮助