我有一个包含以下字段的mongodb集合:
_id
name
(字符串)[items]
(字符串数组)secret
(布尔)我想发布秘密字段为真的所有_id,名称字段和项目数组长度(不包括秘密字段)。
我在某处读过我可以在查找查询中添加其他文档属性,但我的google foo不起作用。
以下是我的发布方法没有额外的items_count
属性:
Meteor.publish("all_items", function() {
return myItems.find(
{secret: true},
{fields:
{_id:1,name:1}
});
});
如何在我的出版物中[item]
长度创建一个额外的字段?
编辑:我似乎需要使用aggregate
函数和$project
运算符。流星不支持它。
任何人都可以向我确认这一点(即它是唯一的选项而且不受支持)?
答案 0 :(得分:0)
你可以add aggregation framework
support to Meteor
,然后如你所提到的那样使用一个带$project
阶段的简单聚合管道,如下所示:
myItems.aggregate(
[
{$match: {secret: true}},
{$project: {_id: 1, name: 1, items_count: {$size: '$items'}}}
]
)