插入并更新多个文档mongodb

编程入门 行业动态 更新时间:2024-10-08 08:24:34

插入并更新<a href=https://www.elefans.com/category/jswz/34/1771377.html style=多个文档mongodb"/>

插入并更新多个文档mongodb

我知道这个主题有很多话题-但是我仍然找不到符合我情况的东西。有一个包含公司和产品架构的大型数据库。每个公司上载其产品,(产品具有“公司”字段,并带有公司的mongo ID)我的操作是这样的-公司上传一系列产品。每个产品都有自己的productId。我需要将所有产品插入数据库,但是-

  1. 如果我发现具有相同productId的产品-更新它-如果没有-插入新产品。

  2. 将部分字段更改为数据库中属于该公司的所有与所有产品ID都不匹配的所有产品(从用户的产品数组中更改(将产品“状态”更改为“已删除”)上传)。

我正在寻找比我正在使用的解决方案更好的解决方案,我的过程像这样-

  1. 获取公司的所有产品。
  2. 循环浏览所有产品-并更新一个字段(状态=“已删除”),为每个产品构建一个映射对象,以便我可以识别它并检查它是否存在于上载的数组中。
  3. 通过公司的数组(带有异步库),检查产品是否存在(在映射数组中),如果存在-更新产品,如果不存在-创建新产品。

感觉很草率,我敢肯定还有更好的方法。

我尝试使用的是-

      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

本文发布于:2024-05-07 20:44:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757166.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个   文档   mongodb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!