如何在mongoose中获得数组结果?

时间:2018-03-14 13:10:49

标签: node.js angular mongodb mongoose

我是棱角分明的新手,我刚开始用mongoose处理mongodb。

在我的应用程序中,我需要获取驱动程序的名称列表作为字符串数组,但是,我正在获取具有对象ID的对象数组。

{
            "_id": "5aa90ab23c49a72488afab7a",
            "name": "mr. Rusiru ekanayaka"
        },
        {
            "_id": "5aa90d4ba8c6b35438a8b132",
            "name": "mr. Gihan ekanayaka"
        },
        {
            "_id": "5aa90d56a8c6b35438a8b133",
            "name": "mr. Gihan ekanayaka"
        }
}

但我需要这样的东西,

[
  ' mr. Gihan ekanayaka,
  ' mr. rusiru ekanayaka ',
  ' mr. Gihan ekanayaka '
]

我想我可以通过遍历对象在我的后端重新格式化。无论如何,在集合中只有一个文档字段作为没有对象id的字符串数组?

在我的Driver模型中,我确实喜欢这个。

module.exports.getDrivers = function(callback){
  Driver.find({},'name',callback);
}

3 个答案:

答案 0 :(得分:1)

试试这个:

module.exports.getDrivers = function(callback){

Driver.distinct('name', callback);

}

答案 1 :(得分:1)

试试这个

module.exports.getDrivers = function(callback){
  Driver.find({},{'_id' : 0,'name' : 1},callback);
}

答案 2 :(得分:0)

一种方法是使用map,例如:

Driver.find({}).map(driver => driver.name);

(调整代码以适应您的编码环境)将返回一个driver.name项目数组,如下所示:

[
  "mr. Rusiru ekanayaka",
  "mr. Gihan ekanayaka",
  "mr. Gihan ekanayaka"
]