Mongoose: `select: false` funktioniert nicht als Teil eines untergeordneten Schemas, wenn das untergeordnete Schema mehrmals verwendet wird

Erstellt am 31. Aug. 2017  ·  3Kommentare  ·  Quelle: Automattic/mongoose

Möchten Sie eine Funktion anfordern oder einen Fehler melden?
Fehler

Wie ist das aktuelle Verhalten?

Im folgenden Skript sehen wir beim Abrufen des übergeordneten Dokuments, dass child als {} zurückkommt, aber child2 { field: 'test'} trotz der Tatsache als ChildSchema.field select: false .

Beim Betrachten des Debuggers wird nur child.field ausgewählt und child2.field nicht.



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);
  }
});


Bitte erwähnen Sie Ihre node.js, Mungo und MongoDB Version.
4.11.8

confirmed-bug

Hilfreichster Kommentar

@wlingke ,

image

Alle 3 Kommentare

danke für das vollständige Repro-Skript, das sieht nach einem Fehler aus

Geben Sie @wlingke ein imaginäres Abzeichen für den besten

@wlingke ,

image

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen