尝试在mongo shell中填充数组

时间:2014-04-06 20:14:46

标签: arrays mongodb

我试图填充我在下面描述的数组结果,输出给我带有4个空元素的数组

  "result" : [
          {
                  "maxTemp" : 83,
                  "group_id" : "Florida"
          },
          {
                  "maxTemp" : 57,
                  "group_id" : "New Mexico"
          },
          {
                  "maxTemp" : 81,
                  "group_id" : "California"
          },
          {
                  "maxTemp" : 57,
                  "group_id" : "Vermont"
          }
  ],
  "ok" : 1

代码是

db.data.aggregate( 
           {
             $group: {
                 _id: "$State"
               , maxTemp: { $max :"$Temperature"}
             }
           },
           { $project: {
                _id: 0,
                group_id:"$_id",
                maxTemp: "$maxTemp"
            }}
        ).result.forEach(function(match) {
            results.push(db.data.findOne(match));
        });

但输出结果为

> results
[ null, null, null, null ]

我可以做些什么来填充结果?

1 个答案:

答案 0 :(得分:0)

这接近有效所以我会给它一个“公平”的尝试。但是你的问题是你改变了字段名称,所以除非它们是相同的,否则你不会得到匹配。因此null回复:

var results = [];

db.data.aggregate([
   { "$group": {
       "_id": "$State", 
       "maxTemp": { "$max" :"$Temperature"}
   }},
   { "$project": {
       "_id": 0,
       "State":"$_id",
       "Temperature": "$maxTemp"
   }}
).result.forEach(function(match) {
    results.push(db.data.findOne(match));
});