Mongoose: `select: false` no funciona como parte de un esquema secundario si el esquema secundario se usa más de una vez

Creado en 31 ago. 2017  ·  3Comentarios  ·  Fuente: Automattic/mongoose

¿Quieres solicitar una función o informar de un error ?
Bicho

¿Cuál es el comportamiento actual?

En el siguiente script, cuando extraemos el documento principal, vemos que child regresa como {} , pero child2 regresa como { field: 'test'} pesar del hecho que ChildSchema.field tiene select: false .

Al mirar el depurador, solo se selecciona child.field y no child2.field .



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


Mencione su versión de node.js, mongoose y MongoDB.
4.11.8

confirmed-bug

Comentario más útil

@wlingke , encontrando todos los errores más sutiles en mangosta desde 2014: rocket:: 1st_place_medal:

image

Todos 3 comentarios

gracias por el script de reproducción completo, esto parece un error

Otorgarle a @wlingke una insignia imaginaria como Mejor Buscador de insectos mangosta del año, 2017 ™ 🐜

@wlingke , encontrando todos los errores más sutiles en mangosta desde 2014: rocket:: 1st_place_medal:

image

¿Fue útil esta página
0 / 5 - 0 calificaciones