当在MongoDB中插入嵌套文档时,它会插入带有id的嵌套文档.为什么会发生这种情况,以及如何阻止这种情况



我正在MongoDB中插入一个嵌套文档,但文档的嵌套部分插入了一个对象ID。下面是我的模式-

const ticketDetail = mongoose.Schema({
ticketCount: { type : Number },
amount: { type : Number },
pxCount: { type : Number },
luggageCount: { type : Number },
cgst: { type : Number },
});
const PaymentModeWiseTDSchema = mongoose.Schema(
busNumber: { type : String },
cityId: { type : String },
cash: ticketDetail,
prepaid: ticketDetail,
wallet: ticketDetail,
pass: ticketDetail,
mobile_pass: ticketDetail,
card: ticketDetail,
{
collection: 'PaymentModeWiseTD',
timestamps: true,
}
);

插入的文档如下所示-

{
_id: 62cc2c69e37ebc0015c0ed43,
busNumber: 'MP09FA9024',
cityId: '46594857',
updatedAt: 2022-08-26T12:41:14.806Z,
cash: {
_id: 6308bf6abb6710802f39571d,
amount: 5,
pxCount: 4,
ticketCount: 3,
originalAmount: 5
},
mobile_pass: {
_id: 6308bf6abb6710802f39571b,
amount: 2,
pxCount: 1,
ticketCount: 1,
originalAmount: 2
},
pass: {
_id: 6308bf6abb6710802f39571a,
amount: 234567,
pxCount: 1,
ticketCount: 1,
originalAmount: 20
},
prepaid: {
_id: 6308bf6abb6710802f39571c,
amount: 8,
pxCount: 1,
ticketCount: 1,
originalAmount: 2,
discountAmount: 2
}
}

我插入它时没有被反对的ID,只有值。但它仍然会自动将对象id添加到文档中。这是怎么发生的?

来自Mongoose文档:

By default, Mongoose adds an _id property to your schemas.

您可能需要查看Subdocs。还有一种方法可以重新考虑如何对数据进行建模。如果没有对场景的描述,很难理解你想做什么。

相关内容

最新更新