使用猫鼬的嵌套查询

时间:2018-11-02 20:00:58

标签: javascript node.js mongoose

我正在使用 espData 集合,该集合包含以下类型的文档:

{ 
 mac: String,
 hash: String,
 rssi: Number
}

使用猫鼬,我想选择具有相同mac和相同散列的那些行,如果count(*)等于2,则选择该行。然后,我想执行一个聚合,分别返回mac和rssi的平均值。

我编写了这段代码,但是没有用。

EspDataModel.aggregate([
    { $group: {
      _id:{
        mac:"$mac",
        hash:"$hash",
      },
      count: {$sum:1}
    }},
    {$match: {count : 2}
  }

], function(err,result){
    result.map(function(doc){
        EspDataModel.aggregate([
                      {
                        $match: { mac: doc._id.mac, hash:doc._id.hash } 
                      },
                      {
                      $group:{
                          mac:"$_id.mac",
                          averageRSSI: {$avg: "$rssi"}
                        }
                      }], function(err,result){
                    console.log(result)
                  })

    })

  })

第一个聚合有效并有效地选择了我感兴趣的那些行,但是有没有合适的方法来匹配mac和原始集合的哈希并计算平均值? 谢谢您的帮助!

0 个答案:

没有答案
相关问题