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