2 votes

MongoDB : obtention de l'id au lieu de _id lors de l'utilisation d'un agrégat

J'utilise l'agrégat pour obtenir programs d'un faculty Tout va bien, mais le problème est que j'obtiens _id de la faculté où je veux obtenir id aussi bien, si je n'utilise pas l'agrégat je peux obtenir id y _id ce qui est bien mais quand l'agrégat ne peut pas avoir id mais seulement _id est dans la sortie

 await Faculty.aggregate([
   {
      $lookup: {
      from: 'programs',
      localField: '_id',
      foreignField: 'faculty',
      as: 'programs'
    },
   },
 ]);

Modèle de faculté :

  const facultySchema = new mongoose.Schema({
      title: {
          type: String,
          required: true,
      },
  }, {
      timestamps: true
    });

    facultySchema.virtual('programs', {
      ref: Program.collection.collectionName,
      localField: '_id',
      foreignField: 'faculty'
    });

    facultySchema.virtual('id').get(function () {
      return this._id.toHexString();
  });

  facultySchema.set('toJSON', {
      virtuals: true,
  });

Sortie

        {
            "_id": "63744bc780d90d5debcac013",
            "title": "FSSK",
            "__v": 0,
            "programs": [
            {
                "_id": "63746ebb305a351746fc7c9e",
                "title": "Communication (Doctor Of Philosophy only)",
                "faculty": "63744bc780d90d5debcac013",
                "__v": 0
            },
            {
                "_id": "637474f3305a351746fc7d74",
                "title": "Anthropology and Sociology",
                "faculty": "63744bc780d90d5debcac013",
                "__v": 0
            },

0voto

Pawan Yadav Points 79

Je pense toHexString() n'est pas supporté en javascript, donc, je recommande d'utiliser toString() fonction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X