查找多个文档以限制1个猫鼬升序

时间:2018-08-07 05:36:31

标签: node.js mongodb mongoose

我是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);
   }
   );
  }

上面的方法对我有用,但是非常慢。有没有一种方法可以设计单个查询并获得相同的结果,而不是一个个地查询数据。 在我的收藏夹中,我只有一个字段称为“数据”,并且我的收藏夹中包含超过一百万个文档。

1 个答案:

答案 0 :(得分:0)

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  
});