我几天后将我的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()进行了任何更改。如果是这样,我需要更改什么才能使我的代码工作? 谢谢:))
答案 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);
});