_idデフォルトばかりのカスタムプロパティを期待してオブジェクトの配列で、私は次のようなスキーマを持っている:マングース:IDという名前だけでなく、
const userSchema = mongoose.Schema({
// Other properties here
userMaterials: [{ title: String, category: String, id: String }]
});
ユーザーは材料を公開する必要があり、それぞれの材料がuserMaterial配列に追加されます。
材料はオブジェクトであり、次のようになります。
let material = {
id: dbMaterial.id.toString(),
title: dbMaterial.title,
category: req.body.category
};
回保存した後、同じ材料のオブジェクトを(ちょうど何が起こるかテストするため)、私はデシベルで見つけたもの、追加_idです。
userMaterials:
[ { _id: 59105a5810400d7cde1d8e50,
category: 'want-to-watch',
title: 'jQuery Fundamentals',
id: 590f7826f55f2e2814d113f8 },
{ _id: 59105df83369cd7fa49c9ac1,
category: 'want-to-watch',
title: 'jQuery Fundamentals',
id: 590f7826f55f2e2814d113f8 } ]
スキーマがuserMaterialsに変更されたとき、私はところで...、配列内のオブジェクトに子スキーマか何かではありません余分_idフィールドことを期待していなかった:[]それはすべての罰金と私私が実際に期待しているもの、つまり配列にプッシュされた変更されていないマテリアルオブジェクトを取得します。
これで、mongooseが_idフィールドを作成する理由を説明できますか?