我是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);
}
);
}
上面的方法对我有效,但速度很慢。有没有一种方法可以设计单个查询并获得相同的结果,而不是逐个查询数据。
在我的集合中有一个名为“data”的字段,我的集合包含超过一百万个文档。