web-dev-qa-db-fra.com

MongoDB via Mongoose JS - Qu'est-ce que findByID?

J'écris un serveur NodeJS avec ExpressJS, PassportJS, MongoDB et MongooseJS. Je viens juste de réussir à ce que PassportJS utilise les données utilisateur obtenues via Mongoose pour s’authentifier.

Mais pour que cela fonctionne, je devais utiliser une fonction "findById" comme ci-dessous.

var UserModel = db.model('User',UserSchema);

UserModel.findById(id, function (err, user) { < SOME CODE > } );

UserModel est un modèle Mongoose. Je déclare le schéma, UserSchema plus tôt. Donc, je suppose que UserModel.findById() est une méthode du modèle Mongoose?

Question

Que fait findById et existe-t-il une documentation à ce sujet? J'ai googlé un peu mais je n'ai rien trouvé.

60
Legendre

findById est une méthode pratique sur le modèle fourni par Mongoose pour rechercher un document à l'aide de son _id. La documentation pour cela peut être trouvée ici .

Exemple:

// Search by ObjectId
var id = "56e6dd2eb4494ed008d595bd";
UserModel.findById(id, function (err, user) { ... } );

Sur le plan fonctionnel, cela revient à appeler:

UserModel.findOne({_id: id}, function (err, user) { ... });

Notez que Mongoose transtypera la valeur id fournie au type _id comme défini dans le schéma (ObjectId par défaut).

124
JohnnyHK

Si le schéma d'id n'est pas de type ObjectId, vous ne pouvez pas utiliser la fonction: findbyId ()

7
Dasikely

Contrairement à find () qui peut renvoyer un ou plusieurs documents, findById () ne peut renvoyer que 0 ou 1 document. Les documents peuvent être considérés comme des enregistrements.

7
Bonnie Varghese