繁体   English   中英

如何发布mongodb数组长度作为其他收集字段?

[英]How to publish a mongodb array length as an additional collection field?

我有一个mongodb集合,其中包含以下字段:

  • _id
  • name (字符串)
  • [items] (字符串数组)
  • secret (布尔值)

我只想发布所有_id,名称字段和项目数组长度(不包括秘密字段),其中秘密字段为true。

我读过某处可以在查找查询中添加其他文档属性的信息,但我的google foo无法正常工作。

没有其他items_count属性的情况下 ,我的发布方法如下items_count

Meteor.publish("all_items", function() {
    return myItems.find(
                 {secret: true},
                 {fields:
                   {_id:1,name:1}
                 });
        });

如何从出版物的[item]长度创建附加字段?

编辑 :似乎我需要使用aggregate函数和$project运算符。 流星不支持它。

谁能向我确认这一点(即这是唯一的选择,并且不受支持)?

您可以Meteor添加aggregation framework支持 ,然后使用具有$project阶段的简单聚合管道,如下所述:

myItems.aggregate(
    [
       {$match: {secret: true}},
       {$project: {_id: 1, name: 1, items_count: {$size: '$items'}}}
    ]
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM