Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.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
Node.js MongoDB查询以获取所有文档的总和';s数组字段长度_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js MongoDB查询以获取所有文档的总和';s数组字段长度

Node.js MongoDB查询以获取所有文档的总和';s数组字段长度,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,下面是一个集合的示例文档,如“CollectionA” 我需要查询所有文档以获得“results”数组长度,并返回所有文档“results”长度的总和 比如说, 文件1的“结果”长度为-5 文件2的“结果”长度为-6 那么输出应该是11 我们是否可以编写一个查询,而不是获取全部、迭代和添加结果长度???如果我已经清楚地了解,您希望投影结果属性的长度。 因此,您应该检查$size操作符是否适合您。 您可以使用$group和$sum计算包含结果数组大小的字段的总大小。要创建字段,可以使用$addFi

下面是一个集合的示例文档,如“CollectionA”

我需要查询所有文档以获得“results”数组长度,并返回所有文档“results”长度的总和

比如说,

文件1的“结果”长度为-5

文件2的“结果”长度为-6

那么输出应该是11


我们是否可以编写一个查询,而不是获取全部、迭代和添加结果长度???

如果我已经清楚地了解,您希望投影结果属性的长度。 因此,您应该检查$size操作符是否适合您。

您可以使用
$group
$sum
计算包含结果数组大小的字段的总大小。要创建字段,可以使用
$addFields
中的
$size
计算每个文档中结果的大小,并将其放入字段中。详情如下:

db.getCollection('your_collection').aggregate([
{
      $addFields: {
         result_length: { $size: "$results"}
      }
   },
   {
   $group: {
        _id: '',
        total_result_length: { $sum: '$result_length' }
    }
    }

])

使用带有
$sum
$size
聚合运算符的聚合分组查询来获取集合中所有文档的数组元素大小总和

db.collection.aggregate( [
  { 
       $group: { 
           _id: null, 
           total_count: { $sum: { $size: "$results" } }
       } 
  }
] )

使用Mongoose的
模型进行聚合。聚合()


我能买到猫鼬牌的吗。。。??
db.collection.aggregate( [
  { 
       $group: { 
           _id: null, 
           total_count: { $sum: { $size: "$results" } }
       } 
  }
] )
SomeModel.aggregate([
  { 
       $group: { 
           _id: null, 
           total_count: { $sum: { $size: "$results" } }
       } 
  }
]).
then(function (result) {
  console.log(result);
});