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
- массив объектов. Некоторые документы представляют собой пустой массив, другие - данные, содержащие поле date
.
Спасибо!
Ответы
Ответ 1
При использовании точечной нотации вам нужно поместить значение ключа в кавычки, поэтому ваш объект sort
должен выглядеть следующим образом:
sort: {
"items.date" : 1
}
Это будет сортировать по возрастанию с минимальным значением date
в каждом массиве doc items