我是Mongodb的新手。
这就是我尝试过的
var fdevices = mongoose.model('fdevices', dataModelSchema);
var DPMPow = fdevices.findOne({ "Data": { $regex: /DPMPow_P01/i }
}).sort({ field: 'asc', _id: -1 });
var DPMAmp = fdevices.findOne({ "Data": { $regex: /DPMAmp_P01/i }
}).sort({ field: 'asc', _id: -1 });
var DPMkWh = fdevices.findOne({ "Data": { $regex: /DPMkWh_P01/i }
}).sort({ field: 'asc', _id: -1 });
var MxPeak = fdevices.findOne({ "Data": { $regex: /MxPeak_P01/i }
}).sort({ field: 'asc', _id: -1 });
var MPPeak = fdevices.findOne({ "Data": { $regex: /MPPeak_P01/i }
}).sort({ field: 'asc', _id: -1 });
function getReady() {
async.series([
function (callback) {
DPMPow.exec(function (err, res) {
callback(null, res);
})
},
function (callback) {
DPMAmp.exec(function (err, res) {
callback(null, res);
});
},
function (callback) {
DPMkWh.exec(function (err, res) {
callback(null, res);
})
},
function (callback) {
MxPeak.exec(function (err, res) {
callback(null, res);
})
}, function (callback) {
MPPeak.exec(function (err, res) {
callback(null, res);
}) ], function (error, results) {
console.log(results);
}
);
}
上面的方法对我有用,但是非常慢。有没有一种方法可以设计单个查询并获得相同的结果,而不是一个个地查询数据。
在我的收藏夹中,我只有一个字段称为“数据”,并且我的收藏夹中包含超过一百万个文档。
最佳答案
var fdevices = mongoose.model('fdevices', dataModelSchema);
var DPMPow = fdevices.find({
$or: [{
"Data": { $regex: /DPMPow/i }
}, {
"Data": { $regex: /DPMAmp/i }
}, {
"Data": { $regex: /DPMkWh/i }
}, {
"Data": { $regex: /MxPeak/i }
}, {
"Data": { $regex: /MPPeak/i }
}]
}).sort({ field: 'asc', _id: -1 });
DPMPow.exec(function(err, res) {
//Now travese thru all the records, when ever you find the unique pattren of
//data remove all the instances of that particular pattren
});
关于node.js - 查找多个文档以限制1个 Mongoose 升序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51719486/