【问题标题】:What is the best approach to update a set of documents considering the mongo db performance考虑到 mongo db 性能,更新一组文档的最佳方法是什么
【发布时间】:2023-04-05 10:37:01
【问题描述】:

我是 Mongodb 的新手。我需要一些关于以下场景的输入。

我有一个文件{ "field1" : "abc", "field2": "xyz", "testId" : "test123" }

在每笔交易中,假设我们收到 1000 个此类文档,其中可能有一些新文档,例如 100 个(意味着这 100 个文档没有条目)。

现在我有两种方法来更新这些文档。
方法 1:查询每个文档以查找它是否有 db 条目,否则将其添加到 db. (我们可以使用 upsert 方法来做到这一点)。

方法 2:删除与特定字段值匹配的所有文档,并使用 SaveAll 将所有 1000 个文档作为新条目插入。

有人可以提出最好的方法吗?

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    添加唯一索引,进行批量插入并忽略任何错误:

    db.foo.createIndex({ "testId": 1 }, { unique: true })
    

    https://docs.mongodb.com/manual/core/index-unique/

    db.runCommand({
      insert: "foo",
      documents: [
        { "field1" : "abc", "field2": "xyz", "testId" : "test123" },
        ...
      ],
      ordered: false  // continue despite errors
    })
    

    https://docs.mongodb.com/manual/reference/command/insert/

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 1970-01-01
      • 2020-11-26
      • 2021-10-20
      • 1970-01-01
      相关资源
      最近更新 更多