//スタックAngular
上に構築された で構築されたアプリを実行しています。Node
Express
MongoDB
私の Mongo データベースには、次のようなオブジェクトがあります。
{
"infoLink" : "http://foo.com",
"name" : "Fossil Watch",
"gender" : "mens",
"price" : "$166.44",
"store" : "Store Name",
"designer" : "Fossil",
},
{
"infoLink" : "http://foo.com",
"name" : "Timex Watch",
"gender" : "mens",
"price" : "$166.44",
"store" : "Store Name",
"designer" : "Timex",
},
{
"name" : "Casio Watch",
"gender" : "mens",
"price" : "$166.44",
"store" : "Store Name",
"designer" : "Casio",
}
mongoDB
1 つのパラメーターからすべての要素を検索して一覧表示する方法を見つけたいと考えています。たとえば、すべてのエントリを検索し、それらの「デザイナー」値を抽出して、以下を返したいとします。
record = ['Fossil', 'Timex', 'Casio']
実際にここで検索しているレコードは約 20,000 件あるので、できるだけ高速かつ効率的に処理したいと考えています。
すべてのレコードを取得し、それぞれをループして目的のパラメーターを見つけ、それを配列に追加することに頼らずにこれを行う方法はありますか? その解決策は次のようになります。
var arr=[];
db.products.find(criteria, function (err, record) {
if (err) {
console.log("Lookup Error: " + err);
} else{
record.forEach(function(data){
if (arr.indexOf(data.designer) > -1){
arr.push(data.designer);
}
});
}
});
しかし、これはかなり不格好な方法だと思います。より良いオプションはありますか?