gpt4 book ai didi

node.js - Mongoose 查询,选择 10 个最近的文档而不改变顺序

转载 作者:可可西里 更新时间:2023-11-01 10:42:14 26 4
gpt4 key购买 nike

我需要从我的消息集合中选择 10 条最近的消息,并将它们作为数组从旧到最新返回。

示例:m1, m2, m3, ... [m19, m20, m22] <-- 选择最后 10 个但保持顺序。

slice 运算符很棒,因为它可以取 -10 这样的值,因此可以从数组中选择最后 10 个值。问题是我想对整个查询响应进行排序,而不是响应中的属性(slice 运算符有 2 个参数,第一个是 path)。

其实我做的是:

.find({ conversation: conversationId })
.sort('-updatedAt')
.limit(10)
.exec(function(err, messages) {

});

但它返回的数组包含从最近到较旧的消息。我该怎么做才能保持良好的秩序,而不是在查询执行后恢复整个数组? ( messages.reverse(); )

最佳答案

获取10个最新文档

MySchema.find().sort({ _id: -1 }).limit(10)

获取 10 个最早的文档

MySchema.find().sort({ _id: 1 }).limit(10)

关于node.js - Mongoose 查询,选择 10 个最近的文档而不改变顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com