MongoDb:根据每个文档的计算查询文档

标签 mongodb

我想从 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/

相关文章:

javascript - cursor.toArray() 返回一个 promise 而不是数组

node.js - 我如何知 Prop 有过期属性的文档已被删除?

mongodb - Golang mongodb 字段级加密

node.js - MongoDB mLab mongoose Node.js 驱动程序 - 一段空闲时间后连接超时?

mongodb - 为 Parse Server 设置 MongoDB 环境要求

java - 如何在 mongo 查询中找到最小的数字?

mongodb 多个匹配条件并返回具有通用名称的文档

angularjs - 如何同时res.json和res.render,传mongo db给angularjs?

c# - MongoDb/C# 过滤并获取所有子文档

mongodb - 如何使用带有 "+"(加号)等特殊字符的 mongodb 正则表达式?