【发布时间】:2020-09-24 01:29:54
【问题描述】:
架构是这样的。这是一个装有物品的购物车:
export interface Cart extends mongoose.Document {
userId: string;
total: number;
count: number;
status: string;
items: [
{
itemId: string;
itemName: string;
count: number;
price: number;
itemTotal: number;
},
];
}
如果您查看 mondodb 数据,就会发现 items 数组中的每个成员都有一个 _id。 我有这个 _id,我想用那个 _id 删除一个项目。 问题是,它是打字稿,而 _id 不是模式的一部分。 这是我用来删除项目的代码:
const cart = await this.cartModel.findOneAndUpdate(
{ _id: dto.cartId },
{ $pull: { items: { _id: '1234567890' } } },
{ new: true },
);
这意味着,在该特定购物车中,找到 _id 等于 1234567890 的商品,然后将其删除。 但是 _id 有红色波浪,因为它不是我的架构的一部分。 我该如何解决这个问题?
【问题讨论】:
-
您的架构是什么样的?和界面一样吗?或者您正在使用子文档模式?如果
_id未在架构中定义,则默认为ObjectId。 -
使用
Types.ObjectId(id)将id转换为ObjectId
标签: mongodb typescript mongoose nestjs