MongoDB按嵌套对象值排序

时间:2012-08-20 01:59:59

标签: javascript mongodb node-mongodb-native

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

答案 0 :(得分:38)

使用点表示法时,您需要将键值放在引号中,这样您的sort对象应该是这样的:

sort: {
    "items.date" : 1
}

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