在Mongo中查找大量不同的字段值?

时间:2013-11-06 14:24:24

标签: mongodb

我想找到集合中给定字段的所有不同值。 distinct()操作似乎最大为16 MB,这非常低。我希望将这些不同的值存储在集合中以供日后使用,或者能够limit()对其进行分页。

项目数量约为5000万,约为5千兆字节。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。

distinct()将超过16MB的文档限制。因此,剩下的唯一选择是使用map-reduce,但如果该字段已被编入索引,则不会占用优势。

mf=function() { emit ( this.field_of_interest , {} ); };
rf=function(key, emits) { return {}  };
db.YourCollection.mapReduce( mf, rf, { out: {replace: "UniqueValues" } } );