arrays - 尝试在 mongo shell 中填充数组

标签 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 ]

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

最佳答案

这接近有效,所以我会尝试一下“公平”。但这里的问题是您更改了字段名称,因此除非它们相同,否则您将不会获得匹配项。因此 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));
});

关于arrays - 尝试在 mongo shell 中填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899437/

相关文章:

python - 为什么将列表元素分配给变量在这里以不同的方式工作?

javascript - MongoError : Authentication failed. - 连接到 MongoLab 时遇到问题

javascript - 如何在 MongoDB 中对集合记录中的数组进行排序?

c - 使用 C 返回数组

mongodb - 字段和模式级别的 Mongoose 索引

javascript - Meteor Collections 发布和订阅

mongodb - 更新和删除哪个快?

arrays - C++,错误c2143(语法错误),c2065,c2109

python - 如果大数组包含较小数组中的值,则查找大数组的索引

arrays - 如何计算数组的正确索引