c# - 批量保存到 MongoDB C# 驱动程序

标签 c# .net mongodb

我在使用 C# 驱动程序批量保存 MongoDB 文档时遇到困难。以下是插入具有 GUID BsonID 的文档的示例代码。一次保存一个是可行的。如果我将文档插入列表并使用保存命令,则会失败,并出现“保存只能用于具有 ID 的文档。”错误。有什么想法吗?

var autolookuplist = new List<BsonDocument>();
            Parallel.ForEach(docs, webdoc =>
                {
                    lock (autolookuplist)
                    {
                        autoID++;
                        var hold = new APAUtoIDGuidLookup() {AutoIncrementID = autoID, ID = webdoc.ID};
                      autolookuplist.Add(hold.ToBsonDocument());
                    }

                  //this works
                 //   idcollection.Save(new APAUtoIDGuidLookup() { AutoIncrementID = autoID, ID = webdoc.ID });
                });


          //this doesn't work
          idcollection.Save(autolookuplist);

这是文档类

public class  APAUtoIDGuidLookup
{
    [BsonId]
    public Guid ID { get; set; }
    public int AutoIncrementID { get; set; }
}

更新: MongoDB好像不支持批量更新。

最佳答案

您无法进行批量保存,但可以进行批量插入。

idcollection.InsertBatch(autolookuplist);

关于c# - 批量保存到 MongoDB C# 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659947/

相关文章:

c# - 如何检查是否已抛出任何异常?

c# - ContractResolver,带下划线的小写字母(蛇形属性名称)?

java - Java 中的 MongoDB 日期搜索返回零结果

mongodb - mongodb 中的异构批量更新

c# - 将规范模式序列化到数据库

c# - 当涉及指针时,如何在 C# 应用程序中包含 C DLL?

c# - 一个页面上的多个 GridView

.net - Windows Azure 套接字

mongodb - 是否有任何工具可用于分析 MongoDB 中的查询,例如 pgbadger

c# - 使用 TextFieldParser 处理包含未转义双引号的字段