Сортировка 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 массив