0
说我有以下几点:
this.aggregate(
{$unwind: "$tags"},
{$match: {tags: {$in: pip.activity.tags}}},
{$group : {_id : '$_id',matches:{$sum:1}}},
{$project: { _id: 0,matches:1}},
{$sort: {matches:-1 }},
callback
);
我怎么会去,包括在业绩的额外“外部” ObjectID字段? e.g如果我有以下几点:
var otherField = new ObjectId('xxxxxxx');
this.aggregate(
{$unwind: "$tags"},
{$match: {tags: {$in: pip.activity.tags}}},
{$group : {_id : '$_id',matches:{$sum:1}}},
{$project: { _id: 0,matches:1,otherField:otherField}}, <-- include otherField
{$sort: {matches:-1 }},
callback
);
这是可能的,或者我应该用一个for循环或MapReduce的这个特定的步骤?我正在寻找一些非常有效的东西。
谢谢努克,我给了它一个去,它做了这份工作:)希望在未来的版本中有一些似乎更少的解决方法,仍比MapReduce更好! – 2013-03-14 09:03:01
在$项目中指定任意常量BSON值的能力看起来是一个很好的请求 - 如果它已经存在,可能值得添加JIRA或投票支持。有一些关于$ literal操作符的讨论 - 可能值得关注。 – 2013-03-15 00:35:36