如何获得整个mongo集合中的所有UNIQUE键?

时间:2017-06-21 23:44:05

标签: mongodb mongodb-query aggregation-framework

我正在尝试在MongoDB中的“todos”集合中获取所有唯一键。在我的“todos”系列中有4000个待机,耗时约0.5秒。这也意味着我在这个系列中拥有的待办事项越多,这个功能就越长。

有更有效的方法吗?我的目标是提高绩效。

提前谢谢。

db.collection('todos').find().forEach(function (doc) {
    count++;
    Object.keys(doc).forEach(function (key) {
        allKeys.push(key);
    })
    if (count == 4000) {
        var unique = allKeys.filter((it, i, ar) => ar.indexOf(it) === i);
        console.log(unique);
    }
});

1 个答案:

答案 0 :(得分:-1)

此:

db.collection('todos').distinct("_id")
如果您的mongo集合上有默认的_id属性,那么

几乎肯定会更快。