Неправильный объект, который вы хотите
{
"blue"
"green"
"yellow"
}
Вам нужно управлять результатом в массиве.
[
"blu",
"green",
"yellow",
]
Там 2 способа, используя агрегирование или манипулирование результатом
1 способ:
db.collection.aggregate([
{ $match: { _id: {$gte: first, $lt: last} }},
{ $group: { _id: "1", fields: { $push: { $concat: field }}}}
]);
возвращает объект с позициями_id и поля с результатом. Поскольку конвейер агрегации выполняет сопоставление и группу после значения defautl и помещает в массив нужное поле
2 way: Управление результатом с использованием карты.
db.collection.find({_id: {$gte: first, $lt: last}}, field_option).toArray(function(err, data){
if(err || !data) throw err;
res.json(data.map(item => (item[field]);
});
Возвращает нужный вам массив, данные - это массив объектов, а карта функций используется для реструктуризации объекта в строку.
Второй способ проще, чем первый, и эффектменьше кода.