javascript - 猫鼬从当前元素向下排序
问题描述
我正在尝试创建一个摄影网站,并希望为每张照片添加按钮,这些按钮重定向到 mongo 数据库中的下一张/上一张。这是我到目前为止所拥有的:
// NEXT PHOTO - shows next photo
router.get("/:id/next", function(req, res){
Photo.find({}).sort({ _id: 1 }).limit(1).then(function(docs){
console.log(docs[0]._id)
res.redirect("/photos/" + docs[0]._id)
})
})
// PREVIOUS PHOTO - shows previous photo
router.get("/:id/previous", function(req, res){
Photo.find({}).sort({ _id: -1 }).limit(1).then(function(docs){
console.log(docs[0]._id)
res.redirect("/photos/" + docs[0]._id)
})
})
这给了我数据库中的第一个或最后一个项目,而不是上一个/下一个。我如何进行修改sort()
以使其仅排序在当前元素的下方/上方?我没有使用 jQuery。
解决方案
要获得下一条记录,您应该说:
router.get("/:id/next", function(req, res){
Photo.find({_id: {$gt: id}}).sort({_id: 1 }).limit(1)then(function(docs){
console.log(docs[0]._id)
res.redirect("/photos/" + docs[0]._id)
})
})
以及上一项:
router.get("/:id/next", function(req, res){
Photo.find({_id: {$lt: id}}).sort({_id: -1 }).limit(1)then(function(docs){
console.log(docs[0]._id)
res.redirect("/photos/" + docs[0]._id)
})
})
推荐阅读
- python - 按日和月对数据进行排序(忽略年份)python pandas
- githooks - 未生成 Git 挂钩
- javascript - 放大时图形被隐藏(使用缩放滚动条)
- ionic4 - 如何在 Ionic 4 中“绘制其他应用程序”
- sql - 与 UNION 相比,INTERSECT 是否具有更高的优先级?
- javascript - Vuejs:如何显示选定的
- ul 下拉菜单中的元素
- sql - 需要关于在同一列上执行自联接查询的说明
- r - 使用物种的 NMDS 图
- c# - 如何从数据库中获取用户角色以填充 AuthorizeAttribute
- asp.net-core - asp.net core 2.x - 在哪里以及如何放置中央控制器功能?