我有客户架构,其中我使用referenceId地址存储客户详细信息(例如,一个客户的地址数组可以有多个地址)。我在地址架构中有多个字段,如街道,区域,地标。我必须找到所有客户的区域是viman nagar,kalyani nagar或KP。此外,我必须将此结果导出到csv文件。
我知道这样做的一个传统方法是,找到所有客户,“填充”他们的地址,最后只通过地址包含viman nagar,kalyani nagar或KP作为“区域”的客户循环结果并修改结果。
要将导出结果导入CSV,我将使用来自here的米兰答案。
我可以在单个查询中获取客户列表而无需循环结果并修改结果集吗?或者建议我做出任何好的选择。
var getCustomerToExport = function(req, res) {
var filteredResult = [];
Customer.find().populate('address').exec(function(err, customers){
async.forEach(customers, function(c) {
var newCustomer= c.address.filter(function(a, indx, arr){ return(a.area === 'viman nagar' || a.area === 'kalyani nagar' || a.area === 'KP'); });
if(newCustomer.length > 0)
filteredResult.push(c);
});
res.json(filteredResult);
});
};