$ sort键规范必须是一个对象

时间:2015-01-21 15:57:16

标签: mongoose

我试图通过一个日期对象字段对我的集合中的文档进行排序:

MyModel.aggregate(
    [
        { "$skip": ( page.current-1 ) * 15 },
        { "$limit": 15 },
        { "$sort": "$personal.dateObject" }
    ], function..................... etc

我收到此错误:

{ [MongoError: exception:  the $sort key specification must be an object]
  name: 'MongoError',
  errmsg: 'exception:  the $sort key specification must be an object',
  code: 15973,
  ok: 0 }

我不知道为什么,导致personal.dateObject,是一个对象:

示例:

   "personal": {
        "dateObject": {
            "$date": "2015-11-20T02:00:00.000Z"
        },

任何想法??

1 个答案:

答案 0 :(得分:5)

您不能使用$sort的Mongoose风格的排序字符串,您需要使用一个对象:

MyModel.aggregate(
    [
        { "$skip": ( page.current-1 ) * 15 },
        { "$limit": 15 },
        { "$sort": {"personal.dateObject": 1} }
    ],