假设我有一个包含以下文档的集合:
{
title: "First",
sub_items: ['test', 'another test', 'whatever]
},
{
title: "Second",
sub_items: ['something', 'something else']
}
我想获得如下输出:
{"First", 3},
{"Second, 2}
最好的方法是什么?我使用map
函数实现了它,如下所示:
db.coll.find().map(
function(item)
{
return {title: item.title, count: item.sub_items.length};
}
);
答案 0 :(得分:2)
如果您使用 MongoDB 2.6或更高版本,则可以使用$size
聚合运算符来获得接近您想要的结果。来自$size
的文档:
计算并返回数组中项目总数。
以下是未经测试的示例:
db.coll.aggregate([
{"$project" : {"title" : 1, "count" : {"$size":"$sub_items"}}}
])