多个文档mongodb"/>
插入并更新多个文档mongodb
我知道这个主题有很多话题-但是我仍然找不到符合我情况的东西。有一个包含公司和产品架构的大型数据库。每个公司上载其产品,(产品具有“公司”字段,并带有公司的mongo ID)我的操作是这样的-公司上传一系列产品。每个产品都有自己的productId。我需要将所有产品插入数据库,但是-
如果我发现具有相同productId的产品-更新它-如果没有-插入新产品。
将部分字段更改为数据库中属于该公司的所有与所有产品ID都不匹配的所有产品(从用户的产品数组中更改(将产品“状态”更改为“已删除”)上传)。
我正在寻找比我正在使用的解决方案更好的解决方案,我的过程像这样-
- 获取公司的所有产品。
- 循环浏览所有产品-并更新一个字段(状态=“已删除”),为每个产品构建一个映射对象,以便我可以识别它并检查它是否存在于上载的数组中。
- 通过公司的数组(带有异步库),检查产品是否存在(在映射数组中),如果存在-更新产品,如果不存在-创建新产品。
感觉很草率,我敢肯定还有更好的方法。
我尝试使用的是-
await Product.updateMany({ productStatus: { $ne: 'manual'} , company: {$eq: company._id}}, { $set: {status: 'deleted' }});
然后是>>
Product.bulkWrite( productsArray.map((row) => ({ updateOne: { filter: { productId: row.productId, company: rowpany }, update: row, upsert: true } }) ) )
它超级慢(我的方法甚至认为它更复杂,但它的速度更快)
我知道这个主题有很多话题-但是我仍然找不到符合我情况的东西。有一个包含公司和产品架构的大型数据库。每个公司都上传...
回答如下:如果我发现具有相同productId的产品,请更新-如果没有,请插入新产品。
更多推荐
插入并更新多个文档mongodb
发布评论