如何使用.sort()查询Mongoose

时间:2015-04-02 13:23:57

标签: mongoose

我知道这是一个简单的问题,但在mongoose 4.0.1中,即使使用API​​文档,我也无法查询我的模型并对结果进行排序。

我有一系列发票,我想找到哪一个是“更好”的发票,价值更高(字段总数)。

模特:

var invoiceSchema = new Schema ({
    employee : { type: Schema.Types.ObjectId, ref: 'Employee' },
    customer : { type: Schema.Types.ObjectId, ref: 'Customer' },
    products : { type: Schema.Types.ObjectId, ref: 'Product' },
    priced : Number,
    qty : Number,
    total: Number,
    date : Date
});

我如何创建发票:

exports.createInv = function (req, res) {
    Invoice.create({
        employee : req.body.employee,
        customer : req.body.customer,
        products  : req.body.products,
        priced : req.body.priced,
        qty : req.body.qty,
        total : req.body.priced*req.body.qty,
        comment : req.body.comment,
        date : req.body.date
    }, function(err) {
    if (err)
        return res.send(err);
    });
}

查询应如下所示:

Invoice
    .find()
    .sort(-total)
    .exec(function(err, inv) {
        if (err) {
            return res.send(err)
        } else {
            res.json(doc);
            console.log(doc);
        }
    })

但它不起作用:))

你能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

sort需要StringObject

Invoice
.find()
.sort("-total")
.exec(function(err, inv) {
    if (err) {
        return res.send(err)
    } else {
        res.json(doc);
        console.log(doc);
    }
})