我正在执行一个聚合,以便有一个数组来提供标签建议,在客户端我使用类似插件的类型。
主要的想法是直接从服务器端发送已排序的数组,因此浏览器不会在"剥离"杰森。
到目前为止我得到了这个
suggestion.aggregate([
{$match : {}},
{$sort : { 'pop' : -1 } },
{$limit:10000},
{$project : { _id: 0,tag : 1 } }
],
function (err,tags) {
if (err) {
return next(err);
}
if (req.xhr) {
res.send(tags);
tags=[];
return;
}
res.send(tags);
tags=[];
}
);
发送像这样的Json:
[
{
"tag": "news"
},
{
"tag": "tech"
},
{
"tag": "sports"
},
....
]
我想从服务器发送类似这样的东西(避免map reduce或forEach函数):
[
"news",
"tech",
"sports",
...
]
答案 0 :(得分:0)
您可以在管道末尾添加一个组操作符来实现此目的:
suggestion.aggregate([
{$match : {}},
{$sort : { 'pop' : -1 } },
{$limit:10000},
{$project : { _id: 0,tag : 1 } },
{$group:{"_id":null,"tagArray":{$push:"$tag"}}}
])