在Mongoose中按创建日期对引用的架构进行排序

唐开发者

接下来的问题,在我的应用程序中,我有帖子,每个帖子可以有一组评论。我正在尝试按日期对评论进行排序。我已经搜索并尝试了任何解决方案,但是没有一个对我有用。

我的尝试不起作用:

const post = await Post.findById(id)
    .populate({
        path: 'comments',
        options: { sort: { createdAt: -1 } },
    })

const post = await Post.findById(id)
        .sort({ 'comments.createdAt': -1 })

在我的帖子模型中,如果引用注释模型,如下所示:

评论架构

    {
        comment: { type: String, required: true },
        user: {
            type: mongoose.Schema.Types.ObjectId,
            required: true,
            ref: 'User',
        },
    },
    { timestamps: true }
)

POST模型:

const postSchema = mongoose.Schema(
    {
        user: {
            type: mongoose.Schema.Types.ObjectId,
            required: true,
            ref: 'User',
        },
        image: {
            type: String,
        },
        text: {
            type: String,
            required: true,
        },
        workout: {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Workout',
        },
        comments: [commentSchema],
        numComments: {
            type: Number,
            required: true,
            default: 0,
        },
        likes: [likeSchema],
        numLikes: {
            type: Number,
            required: true,
            default: 0,
        },
    },
    {
        timestamps: true,
    }
)

提前寻求任何帮助

鲍里斯·库克(Boris Kukec)

问题是您想在哪里进行排序,要在客户端对它进行排序,最简单的解决方案就是对数组进行排序comments,因为您不需要引用另一个ref不需要populate(查找)的架构文档,只需编写另一个then函数,例如这:

    const post = await Post.findById(p._id).then(result => {
        result.comments.sort((a, b) => a.createdAt > b.createdAt ? -1 : 1);
        return result;
    })

要在获取时进行排序,应使用聚合模型函数,并使用管道阶段的模式:$ match,$ unwind,$ sort,$ group。但这是一种复杂的方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Mongoose中按创建日期对引用的架构进行排序

来自分类Dev

Mongoose,按引用属性对结果进行排序

来自分类Dev

Mongodb / Mongoose:我可以按填充的子文档的创建日期对父查询进行排序吗?

来自分类Dev

按创建日期(出生日期)对目录中的文件进行排序

来自分类Dev

在mongodb中按日期对值进行排序

来自分类Dev

如何创建动态排序,以按Power bi中的日期切片器进行响应

来自分类Dev

如何使用documentClient在dynamodb中按创建日期对asc进行排序

来自分类Dev

按日期对列进行排序

来自分类Dev

按Django创建日期排序

来自分类Dev

Sitecore按创建日期排序

来自分类Dev

无法在PHP中按日期对多维数组进行排序

来自分类Dev

在Javascript中按日期对数组进行排序

来自分类Dev

在bash中按日期对文件列表进行排序

来自分类Dev

按日期对数组中的对象进行排序

来自分类Dev

在Python 3.4中按日期对字典列表进行排序

来自分类Dev

Swift / Firebase-按日期对tableview中的帖子进行排序

来自分类Dev

在mongodb中按日期和时间对集合进行排序

来自分类Dev

如何在JQuery中按日期对xml数据进行排序

来自分类Dev

按日期对NSMutableArray中的不同实体进行排序

来自分类Dev

Swift / Firebase-按日期对tableview中的帖子进行排序

来自分类Dev

在R中按日历顺序对日期列进行排序

来自分类Dev

无法在PHP中按日期对多维数组进行排序

来自分类Dev

按对象中的日期对对象数组进行排序

来自分类Dev

按日期对对象中的对象进行排序反应

来自分类Dev

按日期对php中的3个多维数组进行排序

来自分类Dev

在Javascript中按日期对未知数量的对象进行排序

来自分类Dev

PHP中按日期对数组进行排序

来自分类Dev

在react js中按日期对数据进行排序

来自分类Dev

按Django管理面板中创建的日期排序用户

Related 相关文章

  1. 1

    在Mongoose中按创建日期对引用的架构进行排序

  2. 2

    Mongoose,按引用属性对结果进行排序

  3. 3

    Mongodb / Mongoose:我可以按填充的子文档的创建日期对父查询进行排序吗?

  4. 4

    按创建日期(出生日期)对目录中的文件进行排序

  5. 5

    在mongodb中按日期对值进行排序

  6. 6

    如何创建动态排序,以按Power bi中的日期切片器进行响应

  7. 7

    如何使用documentClient在dynamodb中按创建日期对asc进行排序

  8. 8

    按日期对列进行排序

  9. 9

    按Django创建日期排序

  10. 10

    Sitecore按创建日期排序

  11. 11

    无法在PHP中按日期对多维数组进行排序

  12. 12

    在Javascript中按日期对数组进行排序

  13. 13

    在bash中按日期对文件列表进行排序

  14. 14

    按日期对数组中的对象进行排序

  15. 15

    在Python 3.4中按日期对字典列表进行排序

  16. 16

    Swift / Firebase-按日期对tableview中的帖子进行排序

  17. 17

    在mongodb中按日期和时间对集合进行排序

  18. 18

    如何在JQuery中按日期对xml数据进行排序

  19. 19

    按日期对NSMutableArray中的不同实体进行排序

  20. 20

    Swift / Firebase-按日期对tableview中的帖子进行排序

  21. 21

    在R中按日历顺序对日期列进行排序

  22. 22

    无法在PHP中按日期对多维数组进行排序

  23. 23

    按对象中的日期对对象数组进行排序

  24. 24

    按日期对对象中的对象进行排序反应

  25. 25

    按日期对php中的3个多维数组进行排序

  26. 26

    在Javascript中按日期对未知数量的对象进行排序

  27. 27

    PHP中按日期对数组进行排序

  28. 28

    在react js中按日期对数据进行排序

  29. 29

    按Django管理面板中创建的日期排序用户

热门标签

归档