Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 查询填充字段并将结果导出到csv_Mongodb_Csv_Mongoose_Export - Fatal编程技术网

Mongodb 查询填充字段并将结果导出到csv

Mongodb 查询填充字段并将结果导出到csv,mongodb,csv,mongoose,export,Mongodb,Csv,Mongoose,Export,我有customer scheema,我在其中存储客户详细信息和地址的referenceId(它是地址数组,例如一个客户可以有多个地址)。我在地址模式中有多个字段,如街道、面积、地标。我必须找到所有的客户谁的地区是维曼纳加尔,卡里亚尼纳加尔或KP。此外,我必须将此结果导出到csv文件中 我知道这样做的一个传统方法是,找到所有客户,“填充”他们的地址,最后循环遍历结果并修改结果,只有其地址包含viman nagar、kalyani nagar或KP作为“区域”的客户 对于导出到CSV的结果,我将使

我有customer scheema,我在其中存储客户详细信息和地址的referenceId(它是地址数组,例如一个客户可以有多个地址)。我在地址模式中有多个字段,如街道、面积、地标。我必须找到所有的客户谁的地区是维曼纳加尔,卡里亚尼纳加尔或KP。此外,我必须将此结果导出到csv文件中

我知道这样做的一个传统方法是,找到所有客户,“填充”他们的地址,最后循环遍历结果并修改结果,只有其地址包含viman nagar、kalyani nagar或KP作为“区域”的客户

对于导出到CSV的结果,我将使用米兰的答案

我可以在一次查询中获得客户列表,而不必遍历结果并修改结果集吗?或者向我建议实现这一目标的好办法

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);
  });
};

你打算从哪里开始?您使用“填充”之类的术语,这意味着您正在使用nodejs和mongoose。然后链接到关于从mongodb shell输出数据的答案。您的问题也没有给出您希望“填充”的数据的结构或关系的概念。老实说,这是相当广泛和相当含糊的,总的来说是“请有人为我写这封信”。请分享您迄今为止所做的工作。请使用问题的编辑链接来包含相关详细信息,而不是在评论中发布链接或详细信息。好了,我已经为你做了。但是,这并没有显示任何关于数据结果的细节,也没有显示预期的CSV输出结果。您最好研究一下node的CSV库,因为我看这里没有使用任何东西。另外,
async.forEach
似乎引用了一些我不知道的函数。有一个,但它的用法与您正在做的完全不同。我还没有完成csv部分,我正在使用这部分代码获得预期的结果,但我的问题是,我可以在不使用for循环的情况下获得此过滤数据吗?我希望您在这里做的是分解您的问题。我的观点是,这里没有人试图写CSV,因此如果你问“我如何做到这一点”,那么这个问题就“过于宽泛”或“基于观点”或“需要工具”,这只是你的问题被关闭的几个原因。如果你能把你的问题说得“具体”,那就好了。但现在你仍然基本上处于从头开始的模式。