查询今天添加的所有条目的Mongo(新手)

时间:2018-01-27 16:54:52

标签: javascript node.js mongodb mongoose

我试图查询Mongo今天添加的所有条目。例如,如果我在上午9点添加了一些东西,我只想回来,而不是在昨晚9点添加的东西。

我不确定如何正确格式化查询。

const db = require('../models');
const now = new Date();
const startOfToday = new Date(now.getFullYear(), now.getMonth(), now.getDate());

// Defining methods for the mealsController

module.exports = {

   find(req, res) {
    db
      .Meal
      .find({created_on: {$gte: startOfToday}})
  },
  findAll(req, res) {
     db
      .Meal
      .find(req.query)
      .sort({ date: -1 })
      .then(dbModel => res.json(dbModel))
      .catch(err => res.status(422).json(err));
   },
  findById(req, res) {
     db
       .Meal
       .findById(req.params.id)
       .then(dbModel => res.json(dbModel))
       .catch(err => res.status(422).json(err));
  },

1 个答案:

答案 0 :(得分:0)

如果您分享如何在db中存储数据,我可以帮助您进行精确查询 从你的问题来看,我猜你正在寻找的是检索一段时间后插入的文件 在这种情况下,ObjectId.getTimestamp()会对您有所帮助。在Mongo中,每个插入都有一个与之关联的时间戳。例如。
ObjectId("5a6d75590827a11b6016f470").getTimestamp() 返回

ISODate("2018-01-28T07:01:45Z")

要获取文档的对象ID,var a = db.collection.find(<condition>).toArray();

a[0]._id然后打印ObjectId("5a6d75560827a11b6016f46e")
因此,您可以比较在特定日期或时间之后插入的文档。

GL :))