【发布时间】:2013-05-29 13:29:18
【问题描述】:
我正在尝试获取按标签数量排序的出版物列表。我已经完成了一些工作,但是 $unwind 运算符使带有零标签的出版物消失。我试图添加一个占位符来绕过它但没有成功:
Publication.collection.aggregate(
{ "$project" => { tags: { "$push" => "holder" } } },
{ "$unwind" => '$tags' },
{ "$group" => { _id: '$_id', count: { "$sum" => 1 } } },
{ "$sort" => { count: 1 } }
)
我明白了:
failed with error 15999: "exception: invalid operator '$push'"
文档示例:
{ _id: '1', tags: ['b','c'] }
{ _id: '2', tags: ['a'] }
{ _id: '3' }
有什么想法吗?
【问题讨论】:
-
你能展示一两个示例文档吗?
-
当然:
{_id: '1', tags: ['b','c']},{_id: '2', tags: ['a']}{_id: '3'} -
刚刚用示例编辑了问题,有人知道吗?还在努力……
标签: mongodb mongoid mongodb-query aggregation-framework