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
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:
Commentaire le plus utile
@wlingke , trouvant tous les bugs les plus subtils de la mangouste depuis 2014: rocket:: 1st_place_medal: