我已经使用Node JS和Express和Mongo DB开发了一个REST服务。
我已经使用或运算符开发了具有特定查询的POST服务,并且记录输出不止一个。
我只想按时间戳字段检索最后一次插入
这是我的代码

router.post('/sensor/storico', VerifyToken, function(req,res) {
Sensor.find({$or:[{"machineIdentifier": req.body.machineIdentifier}, {"tire": req.body.tire}]}, (err, sensors) => {
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    }
        res.status(200).send({status: 'ok', data: {msg: 'Sensor', version: sensors}});
          });
      });


我如何过滤结果并仅按时间戳字段检索最后一条记录?

谢谢

最佳答案

尝试如下使用:

首先,您可以使用sort()方法对结果进行排序。 sort()方法对结果集中的文档进行排序,然后可以使用limit()方法指定光标将返回的最大文档数。

router.post('/sensor/storico', VerifyToken, function(req,res) {
Sensor.find({$or:[{"machineIdentifier": req.body.machineIdentifier}, {"tire": req.body.tire}]}).sort({createdAt: -1}).limit(1).exec(function(err, sensors){
    if (err) {
        console.log(err);
        return res.status(400).send({ status: 'ko', data: {msg: err.message }});
    }
        res.status(200).send({status: 'ok', data: {msg: 'Sensor', version: sensors}});
          });
      });

10-04 15:15