Я новичок в angular, и я только начал иметь дело с mongodb с помощью mongoose.
В моем приложении мне нужно получить список имен драйверов в виде строкового массива, но я получаю массив объектов с идентификатором объекта.
{
"_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 '
]
Я думаю, что могу переформатировать это в моем бэкэнде, перебирая объект. Есть ли способ получить только одно поле документа в коллекции в виде строкового массива без идентификатора объекта?
В моей модели драйвера мне это нравится.
module.exports.getDrivers = function(callback){
Driver.find({},'name',callback);
}
@Veeram возвращает только отдельные значения. Что происходит, когда есть два драйвера с одинаковыми именами?





Попробуй это:
module.exports.getDrivers = function(callback){
Driver.distinct('name', callback);
}
это возвращает только отдельные значения. Что происходит, когда есть два драйвера с одинаковыми именами?
Попробуй это
module.exports.getDrivers = function(callback){
Driver.find({},{'_id' : 0,'name' : 1},callback);
}
Один из способов сделать это - использовать карта, например так:
Driver.find({}).map(driver => driver.name);
Это (с корректировкой кода для соответствия вашей среде кодирования) вернет массив элементов driver.name, например:
[
"mr. Rusiru ekanayaka",
"mr. Gihan ekanayaka",
"mr. Gihan ekanayaka"
]
когда мне это нравится, это дает эту ошибку -> Vehicle.find (...). map не является функцией .....
попробуйте
module.exports.getDrivers = function(callback){ Driver.distinct('name',callback); }