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