Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 如何对同一集合中不同文档的值求和?_Mongodb_Express_Mongoose - Fatal编程技术网

Mongodb 如何对同一集合中不同文档的值求和?

Mongodb 如何对同一集合中不同文档的值求和?,mongodb,express,mongoose,Mongodb,Express,Mongoose,但是它不起作用。错误是参数必须是聚合管道运算符。如何实现这一点? 这是我的模式代码。 var photoSchema=新模式({ 名称:{type:String}, 电子邮件:{type:String}, 照片:{type:String}, 说明:{type:String}, 电话号码:{type:String}, 活动编号:{ 类型:Schema.Types.ObjectId, 参考:“活动”, }, 我需要将likes\u count字段添加到集合中的所有文档。您错过了输入\u id, 按指

但是它不起作用。错误是
参数必须是聚合管道运算符。
如何实现这一点?
这是我的模式代码。 var photoSchema=新模式({ 名称:{type:String}, 电子邮件:{type:String}, 照片:{type:String}, 说明:{type:String}, 电话号码:{type:String}, 活动编号:{ 类型:Schema.Types.ObjectId, 参考:“活动”, },


我需要将
likes\u count
字段添加到集合中的所有文档。

您错过了输入
\u id
, 按指定的
\u id
表达式对输入文档进行分组,对于每个不同的分组,输出文档。每个输出文档的
\u id
字段包含唯一的分组依据值。有关更多信息,请参阅


您能否在问题和预期结果中添加照片收集模式。您想做什么?您需要在收集中添加新字段?还是只需要通过聚合进行计数和检索?您的问题不清楚。只需通过聚合进行计数和检索id:null的意思是什么,仍然无法理解?它需要输入,如何处理要知道按此字段分组,可以指定
\u id:“$CampaignId”
这将根据该id进行分组,--但现在我们需要对所有文档进行分组,以便
\u id:null
这将对所有文档进行分组。有关更多信息,请从回答中提供的$group链接进行示例演示。我添加了Totalikes变量,但无法将其发送到前端。它显示错误Totalikes Undefined abo中可能没有匹配的文档ve$匹配阶段,移除该阶段并再次测试。已执行该操作
I have photos with an array of likes. I am using mongoose as a db. I want to sum all the numeric values in the likes count of photo collection.
    exports.getAnalytics = (req, res) => {
  if (!req.user) {
    return res.redirect('/login');
  }
  Campaign.findOne({slug:req.params.slug}, (err, campaign) => {
    PhotoEntries.find({ CampaignId: campaign._id}, ['Photo','Name', 'done' ,'likes_count', ], {sort:{ _id: -1} }, function(err, photos) {
      
      PhotoEntries.countDocuments({CampaignId: campaign._id} , function (err, count) { 
          PhotoEntries.aggregate([
            {
              $group: {
                _id: "$CampaignId",
                Totallikes: { $sum: "$likes_count" }
              }
            }
          ]) 
    if(req.user){
      console.log(photos);
      res.render('admin/analytics', {
        title: 'Analytics',
        campaign: campaign,
        photolist : photos, 
        Count:count ,
        Totallikes: Totallikes  
        });
    }
  // }
  // ])

  });
  });
  });
  }   
        done: {
          type: Boolean  ,
      },
    
      likes_count: Number ,default: 0,
        likedBy: [
          {
              type:Schema.Types.ObjectId,
              ref: "User"
          }
      ], 
      });
      }
PhotoEntries.aggregate([
  {
    $group: {
      _id: null,
      Totallikes: { $sum: "$likes_count" }
    }
  }
])