gpt4 book ai didi

javascript - 如何使用 Mongoose 获取当前项的下一项和上一项

转载 作者:IT老高 更新时间:2023-10-28 23:23:52 24 4
gpt4 key购买 nike

我有一个博客。在单个帖子页面上,我想显示一个指向上一篇文章的链接,如果有,则在底部发布下一篇文章。链接应该是特定帖子的标题。

如何使用 Mongoose 以最简单的方式做到这一点?

我当前的 Controller 如下所示:

Post.findOne { slug : req.params.slug }, (err, post) ->
res.render "blog/show.jade", locals: title: "This post", post: post

架构看起来像这样:

PostSchema = new Schema(
title:
type: String
required: true
index: true
preamble: String
body: String
slug: String
createdAt: Date
updatedAt: Date
)

最佳答案

假设你有这样的架构:

{
_id,
text
}

我认为 _id 是 mongo ObjectId,所以我们它包含发布日期,我可以对其进行排序

假设我打开了当前帖子,其 id 等于 ObjectId("43cc63093475061e3d95369d")(而不是这个,我将使用 curId),我需要知道下一个一个和以前的。还让我们考虑一下,我们需要按创建日期降序逐一获取所有帖子:

获取下一个帖子,你可以这样:

db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)

获取以前的帖子你可以这样:

db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)

几件事:

  1. 如果你不使用 mongodb ObjectId 上面的代码对你不起作用,但你仍然可以使用 postDate 代替 id 和当前帖子 postDate 代替 curId.
  2. 获取下一篇/上一篇文章时要注意顺序,要检索下一篇文章需要按 asc 排序,要检索上一篇文章需要排序 desc。
  3. 我对mongoose不熟悉,所以上面的脚本是mongodb shell脚本。

关于javascript - 如何使用 Mongoose 获取当前项的下一项和上一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9153329/

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