【问题标题】:MongoDB query for sorting and limiting the result用于排序和限制结果的 MongoDB 查询
【发布时间】:2018-01-05 01:54:11
【问题描述】:

我有两个模型 User 和 Score

用户模型SCHEMA:

var UserSchema = new mongoose.Schema({
firstName: String,
lastName: String,
createdAt: Date,
scores:[
    {
        type: mongoose.Schema.Types.ObjectId,
        ref: "Score"
    }
]
});

我的分数模型 SCHEMA:

var  ScoreSchema =  new mongoose.Schema({
score: Number,
createdAt: Date
});

所以,基本上我试图以 createdAt 字段的排序顺序获取所有(限制:10)分数并填充分数数组。

我正在使用的查询:

User.findOne({_id: id}).populate('scores').sort({createdAt:-1})
 .limit(10).exec(function (err, result) {
    if (err) {
        console.log(err);
        res.json({
            status: 'error',
            data: err
        })
    }
    else {
        res.json({
            status: 'ok',
            data: result
        })
    }
   })

我仍然以未排序的方式获得所有分数。 请帮忙

【问题讨论】:

  • 试试User.findOne({_id: id}).populate({ path:'scores', options: { limit: 10, sort: { createdAt: -1} } })....

标签: node.js mongodb mongoose


【解决方案1】:

您的sort()limit()User 模型上运行,而不是scores 子文档数组。如果您想要子文档排序,您可能需要查看this post

【讨论】:

    猜你喜欢
    • 2016-04-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 2014-08-12
    • 2017-09-14
    相关资源
    最近更新 更多