最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Mongoose查询,选择10个最新文档而不更改顺序

运维笔记admin8浏览0评论

Mongoose查询,选择10个最新文档而不更改顺序

Mongoose查询,选择10个最新文档而不更改顺序

我需要从我的messages collection中选择10条最新的消息,然后将它们作为一个数组从旧版本返回到最近的版本。

示例:m1, m2, m3, ... [m19, m20, m22]

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

其实我做的是:

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

      });

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

回答如下:

您可以将订单更改为升序(旧到新)消息,并获取所需的最后N个元素

.find().skip(db.collection.count() - N)

因此,您将获得升序orden中的最新消息

发布评论

评论列表(0)

  1. 暂无评论