mongoose对查询结果的排序问题

我现在通过mongoose查询得到的一组集合类似这样:

[{
    _id: "123456",
    sex: 0
},{
    _id: "222222",
    sex: 1
},{
    _id: "111111",
    sex: 1
},{
    _id: "333333",
    sex: 0
}]

我希望能得排序成这样:

[{
    _id: "123456",
    sex: 0
},{
    _id: "333333",
    sex: 0
},{
    _id: "111111",
    sex: 1
},{
    _id: "222222",
    sex: 1
}]

即在 sex 升序的条件下, _id 再升序。我目前是在mongoose查询时设置:

options: {
    sort: {
        _id: 1
    }
}

这样就变成了一个_id升序的数组了,然后在前端进行循环操作来排序的。有没有什么好办法在数据库查询时直接能排好。

阅读 8.1k
1 个回答

供参考:

collection.find({}).sort({'sex': 1,'_id':1}).exec(callback)

Love MongoDB!Have Fun!


MongoDB中文社区深圳用户大会

这个周六,大家约起

详情请入

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏