我正在尝试使用 Mongoose 计算我的集合中数组中字符串的出现次数。我的“模式”如下所示:
var ThingSchema = new Schema({
tokens: [ String ]
});
我的目标是在“Thing”集合中获得前 10 个“令牌”,每个文档可以包含多个值。例如:
var documentOne = {
_id: ObjectId('50ff1299a6177ef9160007fa')
, tokens: [ 'foo' ]
}
var documentTwo = {
_id: ObjectId('50ff1299a6177ef9160007fb')
, tokens: [ 'foo', 'bar' ]
}
var documentThree = {
_id: ObjectId('50ff1299a6177ef9160007fc')
, tokens: [ 'foo', 'bar', 'baz' ]
}
var documentFour = {
_id: ObjectId('50ff1299a6177ef9160007fd')
, tokens: [ 'foo', 'baz' ]
}
...会给我数据结果:
[ foo: 4, bar: 2 baz: 2 ]
我正在考虑为这个工具使用 MapReduce 和 Aggregate,但我不确定什么是最佳选择。