Mongoose: لا يعمل "select: false" كجزء من مخطط الطفل إذا تم استخدام المخطط الفرعي أكثر من مرة

تم إنشاؤها على ٣١ أغسطس ٢٠١٧  ·  3تعليقات  ·  مصدر: Automattic/mongoose

هل تريد طلب ميزة أو الإبلاغ عن خطأ ؟
حشرة

ما هو السلوك الحالي؟

في البرنامج النصي أدناه ، عندما نسحب المستند الأصلي ، نرى أن child يعود كـ {} ، لكن child2 يعود كـ { field: 'test'} على الرغم من الحقيقة أن ChildSchema.field لديه select: false .

عند النظر إلى مصحح الأخطاء ، يتم تحديد child.field فقط و 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);
  }
});


يرجى ذكر إصدار node.js و mongoose و MongoDB.
4.11.8

confirmed-bug

التعليق الأكثر فائدة

wlingke ، العثور على كل الحشرات الأكثر دقة في النمس منذ 2014: صاروخ:: 1st_place_medal:

image

ال 3 كومينتر

شكرًا لك على النص الكامل لإعادة العرض ، يبدو هذا وكأنه خطأ

منح wlingke شارة تخيلية لأفضل مكتشف

wlingke ، العثور على كل الحشرات الأكثر دقة في النمس منذ 2014: صاروخ:: 1st_place_medal:

image

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات