Сортировка MongoDB по вложенному значению объекта
Я пытаюсь отсортировать результаты на основе значений вложенного объекта. Используя node-mongodb-native, Я делаю это:
this.collection.find({
"_id": ObjectID(item_id) },
{ "items": 1 },
{ sort : { items.date : 1 }
}, function(err, result) {
if (err) {
callback(err);
} else {
callback(null, result);
}
});
я получаю неожиданную ошибку токена для items.date.
items - это массив объектов. Некоторые документы это пустой массив, другие содержат данные, которые содержат
1 ответов
при использовании точечной нотации вам нужно поместить ключевое значение в кавычки, поэтому ваш sort объект должен выглядеть так:
sort: {
"items.date" : 1
}
это будет сортировать по возрастанию по минимуму date значение в каждом документе items массив