MongoDB按嵌套对象值排序

dzm*_*dzm 23 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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我收到了意外的令牌错误items.date.

items是一个对象数组.有些文件是空数组,有些文件包含数据,包含date字段.

谢谢!

Joh*_*yHK 39

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

sort: {
    "items.date" : 1
}
Run Code Online (Sandbox Code Playgroud)

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