我有一个订阅集。它有大约800万条记录。我想基于phoneNumber
获得唯一记录数。
由于mongo有distinct query
可以从集合中获取唯一文档。
我执行以下查询:
db.getCollection('subscriptions').distinct('phoneNumber')
但是上面的查询抛出上限错误:
错误:明显太大,上限为16mb
然后我也尝试了聚合。我使用$group
实现了这一目标。但是因为记录的数量是800万,所以没有给我记录。我等了很久,但一无所获。
这是我的汇总查询:
subscription.aggregate([
{ $group: { _id: "$phoneNumber", subscribers: { $sum: 1 } } }
], function (err, docs) {
if (docs) {
console.log(docs);
console.log(docs.length);
}
});
我该怎么做?