首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在蒙古族找到年龄为%3 == 0的文件?

如何在蒙古族找到年龄为%3 == 0的文件?
EN

Stack Overflow用户
提问于 2013-11-08 00:05:27
回答 1查看 78关注 0票数 1

每个文档都有时间戳,因此查找给定时代的文档非常简单。

如何找到年龄为%3 == 0的文档?在Ruby中这样做很简单,但是大多数文档都是不需要的,所以最好在Mongo中找到相关的文档。

为什么?

其要求是每3天向用户发送一次提醒。我可以安排一项任务每天(或每小时)运行。一种方法是每3天运行一次任务,但最好是在他们注册后3天发送提醒,而不是4-6天之后。

而且,这似乎不是一种非常优雅的方法。是否有更好的方法每3天对文件采取行动?

西纳屈+赫洛库+蒙戈。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-08 21:18:23

假设:数据库中有以下带有时间戳的文档。

代码语言:javascript
复制
> db.dinner.find()
{ "_id" : ObjectId("527d4edc6acba77bbdbcdbc5"), "timestamp" : 1383857393558, "dinner" : "strawberries" }
{ "_id" : ObjectId("527d4ee96acba77bbdbcdbc6"), "timestamp" : 1383770993558, "dinner" : "cherries" }
{ "_id" : ObjectId("527d4f116acba77bbdbcdbc7"), "timestamp" : 1383684593558, "dinner" : "blueberries" }
{ "_id" : ObjectId("527d4fa36acba77bbdbcdbc8"), "timestamp" : 1383943793558, "dinner" : "cranberries" }
> 

然后你可以找到所有的文档,都是0,3,6,9,.几天前,有以下代码:

代码语言:javascript
复制
today = new Date();
db.dinner.find().forEach(
  function(entry) {
    daysAgo = Math.floor((today.getTime() - entry.timestamp) / 1000 / 60 / 60 / 24);
    if (daysAgo % 3 == 0) printjson(entry);
  }
)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19849272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档