Ich schreibe einen NodeJS-Server mit ExpressJS, PassportJS, MongoDB und MongooseJS. Ich habe es gerade geschafft, PassportJS dazu zu bringen, Benutzerdaten, die über Mongoose erhalten wurden, zur Authentifizierung zu verwenden.
Aber damit es funktioniert, musste ich eine "findById" -Funktion wie unten verwenden.
var UserModel = db.model('User',UserSchema);
UserModel.findById(id, function (err, user) { < SOME CODE > } );
UserModel
ist ein Mungomodell. Ich erkläre das Schema UserSchema
früher. Also UserModel.findById()
ist es wohl eine Methode des Mungomodells?
Frage
Was macht findById
und gibt es Dokumentation dazu? Ich habe ein bisschen gegoogelt, aber nichts gefunden.
id
wird_id
in den im Schema definierten Typ umgewandelt (standardmäßigObjectId
).findByIdAndRemove
Wenn das Schema der ID nicht vom Typ ObjectId ist , können Sie nicht mit der folgenden Funktion arbeiten: findbyId ()
quelle
Im Gegensatz zu find (), das 1 oder mehrere Dokumente zurückgeben kann, kann findById () nur 0 oder 1 Dokument zurückgeben. Dokument (e) können als Datensatz (e) betrachtet werden.
quelle
Ich bin der Betreuer von Mongoose.
findById()
ist eine integrierte Methode für Mungomodelle.findById(id)
ist äquivalent zufindOne({ _id: id })
, mit einer Einschränkung:findById()
mit 0 params ist äquivalent zufindOne({ _id: null })
.Weitere
findById()
Informationen finden Sie in den Mongoose-Dokumenten und in diesemfindById()
Tutorial .quelle
{ "message": "Cast to ObjectId failed for value \"{ id: '5d9a3b073f308e32b47a5cbb' }\" at path \"_id\" for model \"Categories\"", "name": "CastError", "stringValue": "\"{ id: '5d9a3b073f308e32b47a5cbb' }\"", "kind": "ObjectId", "value": { "id": "5d9a3b073f308e32b47a5cbb" }, "path": "_id" }
id
Eigenschaft anstelle einer Zeichenfolge oder einer ObjectId-Instanz übergeben. Versuchen Sietypeof val
val.constructor.name
findById()
id
. Ich habe keine Eigenschaft vom TypObjectId
.