我是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/

10-13 05:27