我正在运行一个使用 构建的应用程序,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
以查找并列出一个参数中的所有元素。例如,我想搜索所有条目并提取它们的“设计器”值,以便返回:
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);
}
});
}
});
但我觉得这是一种非常笨拙的方法。有更好的选择吗?