2017-06-21 9 views
0

私はMongoDBの "todos"コレクション内のすべてのユニークなキーを取得しようとしています。私の "todos"コレクションには、約0.5秒かかった4000個のトドスがあります。これは、私がこのコレクションで持っていることが多いほど、この機能が長くかかることを意味します。mongoコレクション全体でUNIQUEキーをすべて取得する方法は?

もっと効率的な方法はありますか?私の目標はパフォーマンスを向上させることです。

ありがとうございます。

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

この:

db.collection('todos').distinct("_id") 

は、ほぼ確実に、あなたのMongoのコレクションのデフォルト_id性質を持って提供し、より高速になります。

+0

質問は実際には「値」ではなく「キー」を求めています。それはずっと前にすでに答えられています。 –

関連する問題