使用Javascript获取下一个和上一个MongoDB

时间:2016-09-09 14:46:44

标签: javascript node.js mongodb express mongoose

我有一个MongoDB和Mongoose的Express应用程序。该应用程序显示不同项目的图像库,这些项目都保存在数据库中。我希望每个图库都链接到数据库中保存的上一个和下一个项目,因此我尝试获取这些项目的ID并将它们传递到EJS模板中:

app.get('/projects/:_id', function(req, res){
nextProject = Project.findById({_id: {$gt: req.params._id}}).sort({_id: 1 }).limit(1)
console.log('Next Project');
console.log(nextProject);

但这会返回错误:

{ CastError: Cast to ObjectId failed for value "{ _id: { '$gt': '57d09754943f2403738edb04' } }" at path "_id"

如何获取数据库中的上一个和下一个条目?实际上,如果它们是数据库中的上一个和下一个条目,只要它们与当前显示的条目不同,它就不会真正重要。

如果它有用,请参阅项目架构:

var mongoose = require('mongoose');

var projectSchema = new mongoose.Schema({
  title: String,
  description: String,
  images: Array
});

module.exports = mongoose.model('Project', projectSchema);

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需将findById更改为find即可。

findById接受您要查找的文档的_id,而不是查询对象。