如何删除猫鼬中的Many

问题描述

我有一个这样的数据库

User {
 id: 12323,name: asdasd,products: [{ id: 1,name: asdasdl },{id: 2,name: bfcvc}]
}

使用 deleteMany,我想删除所有产品名称'asdasdl' 的产品。

我该怎么做?

我有这个代码,但它不起作用:

await User.deleteMany({'name': { '$in': User.products }},{});

谢谢!

解决方法

您可以像这样使用 $eq operator

await User.deleteMany({ 'products.name': { $e: 'asdasdl' }});
,

通过更改查询参数,您可以获取所有带有 products.name == 'asdasdl' 的文档,然后将其删除:

await User.deleteMany({ 'products' : { 'name': 'asdasdl' }}); 

参见 deleteMany docs hereMongo queries on arrays here

,

感谢您的回答。

实际上我不想删除用户,我想删除产品。因此,如果名称是“asdasdl”,请删除该产品。

谢谢!