25

我正在尝试根据嵌套对象的值对结果进行排序。使用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字段。

谢谢!

4

1 回答 1

52

使用点表示法时,您需要将键值放在引号中,因此您的sort对象应如下所示:

sort: {
    "items.date" : 1
}

date这将按每个文档items数组中的最小值升序排序

于 2012-08-20T02:16:49.380 回答