私はMongoDBとMongooseでExpressアプリケーションを持っています。アプリケーションは、すべてのDBに保持されている異なるプロジェクトの画像ギャラリーを表示します。私はDBで開催された前回と次のプロジェクトにリンクする各画像ギャラリーが欲しいので、私はそれらのプロジェクトのIDを取得し、EJSテンプレートにそれらを渡すためにしようとしている:Javascriptで次と前のMongoDBを取得
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"
データベースの前と次のエントリを取得する方法はありますか?実際にはは実際にはであり、現在表示されているものと異なる限り、DB内の前のエントリと次のエントリは問題ありません。
場合、それは便利ですが、ここではプロジェクトのスキーマです:
var mongoose = require('mongoose');
var projectSchema = new mongoose.Schema({
title: String,
description: String,
images: Array
});
module.exports = mongoose.model('Project', projectSchema);
ありがとうございました!
ObjectId文字列を追加しようとすると、少なくともmongo shellが必要です。mongooseについてはわかりません。何か:nextProject = Project.findById({_ id:{$ gt:ObjectId(req.params._id)}} ).sort({_ id:1})。limit(1)。 –