节点js按时间戳检索最后一条记录插入

时间:2019-01-15 21:06:43

标签: node.js mongodb express

我已经使用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}});
          });
      });

如何过滤结果并仅按时间戳字段检索最后插入的记录?

谢谢

1 个答案:

答案 0 :(得分:1)

尝试如下使用:

首先,您可以使用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}});
          });
      });