在给定日期之前获取所有文档?(创建于)



我有一个日期选择器小部件给出的这个日期:

let targetDate = '2019-01-12';

我的所有文档都有一个由时间戳生成的createtAt 日期:

"createdAt": "2019-01-12T21:49:05.546Z"

我想获取该字段创建的所有文档与我给定的日期匹配。我尝试使用$elemMatch:

const allDailies = await Daily.find({ createdAt: { $elemMatch: dateTarget } });
const allDailies = await Daily.find({ createdAt: { $elemMatch: { from: dateTarget, to: dateTarget} } });

没有人工作,我该如何进行此查询?实际上我无法修改我的架构:(

编辑:

router.get('/daily/:date', async (req, res) => {
  try {
    const targetDate = new RegExp(`^${req.params.date}`);
    const allDailies = await Daily.find({ createdAt: { $regex: targetDate } });
    console.log('Dailies', allDailies);
    return res.json({ allDailies });
  } catch (error) {
    return res.sendStatus(httpStatus.INTERNAL_SERVER_ERROR);
  }
});

它返回 500 错误

将您的targetDate转换为与createdAt相同的类型,并将其用作tatgetDate查询。不像您现在使用它那样dateTarget(您输入错误)。

您必须将

目标日期转换为 ISODate 格式。但默认情况下,这将由猫鼬照顾,所以..您要做的是像这样更改查询

Model.find({createdAt:{$gte:params.frm, $lte:params.to}},callback);

或者,如果您只想约会一次,请尝试以下操作

Model.find({createdAt:dateTarget},callback);

最新更新