Mongoose: `select: false` ne fonctionne pas dans le cadre d'un schéma enfant si le schéma enfant est utilisé plus d'une fois

Créé le 31 août 2017  ·  3Commentaires  ·  Source: Automattic/mongoose

Voulez-vous demander une fonctionnalité ou signaler un bogue ?
Bogue

Quel est le comportement actuel?

Dans le script ci-dessous, lorsque nous tirons le document parent, nous voyons que child revient comme {} , mais child2 revient comme { field: 'test'} malgré le fait que ChildSchema.field a select: false .

Lorsque vous regardez le débogueur, seul child.field est sélectionné et child2.field ne l'est pas.



const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1/test');
const db = mongoose.connection;

db.once('open', async () => {
  try {
    const ChildSchema = new mongoose.Schema({
      field: {
        type: String,
        select: false,
      },
      _id: false,
    }, { id: false });

    const ParentSchema = new mongoose.Schema({
      child: ChildSchema,
      child2: ChildSchema,
    });
    const Parent = mongoose.model('Parent', ParentSchema);
    const ogParent = new Parent();
    ogParent.child = { field: 'test' };
    ogParent.child2 = { field: 'test' };
    await ogParent.save();

    const foundParent = await Parent.findById(ogParent._id).exec();
    console.log(foundParent);

    db.close();
  } catch (e) {
    console.log(e);
  }
});


Veuillez mentionner votre version node.js, mangouste et MongoDB.
4.11.8

confirmed-bug

Commentaire le plus utile

@wlingke , trouvant tous les bugs les plus subtils de la mangouste depuis 2014: rocket:: 1st_place_medal:

image

Tous les 3 commentaires

merci pour le script de repro complet, cela ressemble à un bogue

Donner à @wlingke un badge imaginaire pour le meilleur insectes mangoustes de l'année, 2017 ™ 🐜

@wlingke , trouvant tous les bugs les plus subtils de la mangouste depuis 2014: rocket:: 1st_place_medal:

image

Cette page vous a été utile?
0 / 5 - 0 notes