sort()和limit()在mongoose 5.0.11中不起作用

时间:2018-03-24 10:14:53

标签: node.js express mongoose

我几天后将我的api代码迁移到新服务器并安装了mongoose,express等所有最新的软件包。之前,我使用mongoose版本4.12.3运行相同的查询,一切正常。但是,现在当我使用所有升级的包运行相同的查询时sort()和limit()不起作用。

这是我的api控制器的代码

'use strict';

var mongoose = require('mongoose'),
  Quad = mongoose.model('Quad');

exports.list_machine_quadData = function(req, res) {
  Quad.find({"machineId":req.body.machineId}, function(err, quad) {
    if (err)
      res.send(err);
    res.json(quad);
  }).sort({"data.eTimeStamp":-1}).limit(96); 
};

这是同一个

的架构
'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const QuadSchema = new Schema({
    eDate:{
        type: Date,
        required: [true,'eDate is required']
    },
    eTimeStamp:{
        type: Date,
        required: [true,'eTime is required']
    },
    dataJ:{
        type: String,
        required: [true,'DataJ is required']
    }
});

const DataSchema = new Schema({
    clientId:{
        type: String,
        required: [true,'Client ID is required']
    },
    machineId:{
        type: String,
        required: [true,'Machine ID is required']
    },
    data:[QuadSchema]
  });

const Quad = mongoose.model('Quad',DataSchema);
module.exports = Quad;

是否对5.X中的sort()查询和limit()进行了任何更改。如果是这样,我需要更改什么才能使我的代码工作? 谢谢:))

1 个答案:

答案 0 :(得分:2)

您需要更改您的mongoose查询

替换此代码

Quad.find({"machineId":req.body.machineId}).sort({"data.eTimeStamp":-1}).limit(96).exec(function(err, quad) {
    if (err)
      res.send(err);
    res.json(quad);
  });