【问题标题】:Mongoose: query with array of datas and return same number of resultMongoose:查询数据数组并返回相同数量的结果
【发布时间】:2019-04-17 12:28:38
【问题描述】:

我有一个包含类别列的 csv,其中有一些重复的类别名称,所以我制作了一个包含所有类别名称的数组,例如:

var abc = ['A','A','B','A']  //array with duplicate data

在这个例子中,A 是重复的,所以当我查询一个文档时:

CollectionA.find({
    categoryName: abc
}, function(err, data){
    if(err){
      console.log(err);
    }
    console.log(data);
});

但它只返回 AB 的 2 个文档,但我想要与数组长度相同的行数,我希望输出应该返回相同数量的文档。

【问题讨论】:

  • 获取唯一的,然后使用array#map生成所有数据。
  • 你能告诉我怎么做吗?
  • 你能用示例文件解释一下吗

标签: javascript arrays node.js mongodb mongoose


【解决方案1】:

你可以简单地使用Array.map()在回调中复制结果,试试:

var abc = ['A','A','B','A']
CollectionA.find({ categoryName: abc }, function(err, data){
    if(err){
        console.log(err);
    }
    data = abc.map(category => data.find(d => d.category_name === category));
    console.log(data);
});

【讨论】:

    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2011-10-25
    • 2018-06-12
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多