我有以下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分钟。在这方面的任何帮助将不胜感激。
答案 0 :(得分:3)
我尝试在mongo 2.4.8中使用代码,并发现当你在两个日期之间取差异时它以毫秒为单位返回结果,然后编写以下函数以在几分钟内获取数据。 在这里,我假设你的文档中有两个日期字段'输入'(当用户输入时)和'左'(当用户离开时),最后你以分钟计算差异并在同一文档中存储'timespent'
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);
});
希望有所帮助