我想从 MongoDB 数据库中查询一个文档,其中的条件是给定计算的结果。我不知道这是否可以理解,模拟 SQL 查询可能会有所帮助:
SELECT * FROM tasks AS t WHERE t.lastRun < (NOW() - t.maxAge)
每个任务都有一个 maxAge 字段,用于确定任务运行的频率。如果达到 maxAge,查询应返回随后执行的任务。
因为我缺乏描述此类查询的词汇,所以很难找到有关该主题的任何信息。如果在某处提到了这一点,请原谅。 :-)
我的第一个 react 是:让我们映射整个集合以包含每个任务的计算阈值,但这对于这样一个简单的查询来说似乎有点太多了。我希望这不是唯一的解决方案。 :-)
最佳答案
你可以试试
db.tasks.insert({lastRun:new ISODate(), maxAge:100});
db.tasks.find({ $where: "this.maxAge < (new ISODate()-this.lastRun)"});
关于MongoDb:根据每个文档的计算查询文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12092972/