【问题标题】:Async in loop to insert into mongodb循环中的异步插入到 mongodb
【发布时间】:2017-05-21 19:25:35
【问题描述】:

我正在使用 mongo,并且一次插入多个查询,因此我使用 for 循环插入到数据库中。问题是每个查询都属于一个键,所以我检查一个键是否存在,如果不存在,我将它添加到数据库中,如果存在,我附加它。如果我有多个具有相同键的查询(因为 mongo 异步插入),这两个相同的键可以在数据库中被识别为“不存在”,因为它们可以并行运行。有没有解决的办法?

【问题讨论】:

  • 很有可能您的案例实际上并不像您说的那么复杂。显示一些示例更新和您试图在问题中实现的总体结果。批量操作使用和基本 upserts 中都有可能适合您的目的的技术。但我们需要一些更具体的例子来确定。

标签: mongodb


【解决方案1】:

如果您要编写大量文档,最好在 mongo https://docs.mongodb.com/manual/core/bulk-write-operations/ 中使用批量操作。

您可以将查询编写为 upsert。我认为这个问题与您要完成的问题非常相似。 How to properly do a Bulk upsert/update in MongoDB

如果您将其作为有序的批量操作执行,您应该不会遇到同时运行两个查询的问题。

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 2018-10-17
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多