例如,有一个这样的集合:
{市场:'SH',代码:'000001',日期:'2012-01-01',价格:1000}
{市场:'SZ',代码:'000001',日期:'2012-01-01',价格:1000}
{市场:'SH',代码:'000001',日期:'2012-01-02',价格:1000}
{市场:'SZ',代码:'000001',日期:'2012-01 -02',价格:1000}
{市场:'SH',代码:'000002',日期:'2012-01-03',价格:1000}
...
该集合包含数以千万计的文档。
我想用两个键调用 distinct:
collection.distinct('market', 'code');
并得到结果:
[{市场:'SH',代码:'000001'},{市场:'SZ',代码:'000001'},{市场:'SH',代码:'000002'}]
由于本机 distinct 命令只接受一个键,因此我尝试使用 map-reduce 来实现它。但是 map-reduce 对原生 distinct 来说太慢了。在我的一键 distinct 测试中,map-reduce 花费的时间大约是原生 distinct 的十倍。
有没有一种有效的方法来实现多键不同?