Ok, also ich habe diese Funktion, um einen Blog Post mit einer ID aus einem Mongodb db zu bekommen.Ich kann nicht verstehen, Mongoose "findOne"
exports.blogPostFirst = function(req, res, next) {
BlogPost.findOne({
_id: '1'
}, function(err, e) {
if (err) {
return next(err);
} else {
req.content = e;
next();
}
});
res.render('blogPage', {
title: req.content.title,
content: req.content.html_content
})
};
Jetzt für, irgendeinen Grund des _id : '1'
Teil ein String nicht funktioniert, ist das _id Feld.
Wenn ich stattdessen gebe dem _id Parameter einen Wert in der Form von einem Elemente eine Route zum Beispiel bilden die ich in meiner Route ‚Route :: param‘ habe
und ich gebe die Funktion über ein viertes Argument ‚id‘ und übergeben Sie es als ein "param" -Parameter funktioniert es gut, aber ich bin nicht sicher, wie kann ich das Feld "_id" manuell festlegen.
Die BlogPost
Objekte ist wie folgt:
var BlogPost = require('mongoose').model('Post');
der Mungo Schema ist:
Schema = mongoose.Schema;
var PostSchema = new Schema({
title: String,
html_content: String,
_id: String,
});
mongoose.model('Post', PostSchema);
Ich bin mir nicht sicher, ob Sie falsch liegen oder nicht, aber das ist nicht das Problem, um sicher zu sein. Wenn ich das Schema ändern in: var PostSchema = new Schema ({ title: String, html_content: String, Nummer: String, urlOne: String, urlTwo: String, urlThr: String, }); Aka ließ mongodb die _id autoset und stattdessen eine "falsche ID", durch die ich suche die Nummer namens "Nummer" und ändern Sie meinen Code zu Nummer: '1' ........ Das Ergebnis ist immer noch das gleiche, die dB gibt kein signifikantes Objekt zurück –
Das sollte funktionieren. Versuchen Sie die Funktion 'findById' zu verwenden. Überprüfen Sie auch in der MongoDB-Shell, dass das, was Sie abfragen möchten, in der Datenbank vom selben Typ ist. – ana06