MongoDB 数组类型的子文档求合
集合结构如下{_id:1,array:[......]}{_id:2,array:[......]}...{_id:n,array:[......]}需求一,想要获取每一...
集合结构如下
{ _id : 1, array : [ ... ... ] }
{ _id : 2, array : [ ... ... ] }
...
{ _id : n, array : [ ... ... ] }
需求一,想要获取每一条文档的 array 的length,结果类似如下
{ _id : 1, arrayLength : 1 }
... ...
{ _id : n, arrayLength : x }
需求二,通过aggregate获取array的总和,结果类似如下
{ _id : 0, arrayTotalLength : y } 展开
{ _id : 1, array : [ ... ... ] }
{ _id : 2, array : [ ... ... ] }
...
{ _id : n, array : [ ... ... ] }
需求一,想要获取每一条文档的 array 的length,结果类似如下
{ _id : 1, arrayLength : 1 }
... ...
{ _id : n, arrayLength : x }
需求二,通过aggregate获取array的总和,结果类似如下
{ _id : 0, arrayTotalLength : y } 展开
1个回答
展开全部
你说的这个可以通过聚合操作得到
想要获取每一条文档的 array 的length的示例:
db.collection.aggregate([
{$group:{_id:"$_id",arrayLength:{$size:"$array"}}}
]);
通过aggregate获取array的总和的示例:
db.collection.aggregate([
{$group:{_id:"$_id",name:"0",arrayLength:{$size:"$array"}}}
{$group:{_id:"$name",arrayTotalLength:{$sum:"$arrayLength"}}}
]);
以上的命令都没有经过测试,只是一个思路可以多加改进调试,当然也不一定对。
想要获取每一条文档的 array 的length的示例:
db.collection.aggregate([
{$group:{_id:"$_id",arrayLength:{$size:"$array"}}}
]);
通过aggregate获取array的总和的示例:
db.collection.aggregate([
{$group:{_id:"$_id",name:"0",arrayLength:{$size:"$array"}}}
{$group:{_id:"$name",arrayTotalLength:{$sum:"$arrayLength"}}}
]);
以上的命令都没有经过测试,只是一个思路可以多加改进调试,当然也不一定对。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询