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