我有一个mongodb集合。每个元素都包含一个数组topics
。每个主题都包含一个数组units
。每个单元包含一个数组questions
,每个问题包含一个数组ids
。如何在所有主题的al ...中的所有问题中获得所有id的计数?在所有主题中,如何获得所有ID的唯一计数?
答案 0 :(得分:1)
您需要执行多个$unwind
操作,然后最终使用$size
函数来获取ID计数。
db.your_collection.aggregate(
{
$unwind:"$topics"
},
{
$unwind:"$units"
},
{
$unwind:"$questions"
},
{
$project: {
numberOfItems: { $size: "$topics.units.questions.ids" }
})
答案 1 :(得分:0)
让我用自己的方式解释
这就是嵌入方式https://ibb.co/ck35a0
如果要在我的文档中查找元素,则可以过滤未闲置的ID。
var line=db.getCollection('LineDefinitions').find({LineDefinitionGrid:{$exists:true}});
var lineCount=0;
line.forEach(function(item){
lineCount+=item.LineDefinitionGrid.length;
})
lineCount;