如何对集合MongoDB中的对象数组进行排序?

时间:2017-05-31 12:55:21

标签: javascript node.js mongodb sorting mongoose

我正在使用node.js和MongoDB。我有下一个模式的集合:

var project = new Schema({
head:{
    head_task: String,
    userID: String
},
access_users: {
    type : Array ,
    "default" : []},
context_task: [{
            from_name: String,
            status: Boolean,
            task: String,
            created_task: {
                type: Date,
                default: Date.now()
             }
        }],
created: {
        type: Date,
        default: Date.now
    }});

如何通过DESC的字段context_task.created_task来获取文档排序。 我认为我必须使用聚合查询

db.tasks.aggregate({$match :{"_id":ObjectId("590e2d7d4d4a5e0b647d0835")}},
 {$sort: {"context_task.created_task": -1}}).pretty();

但排序不起作用。 也许我必须在客户端上对数据进行排序? 任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

$ sort 已弃用。你需要在find中使用sort函数。

db.tasks.find({_id : "590e2d7d4d4a5e0b647d0835" })
.sort({context_task.created_task : 1})
.limit(1)