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

本文关键字:驱动程序 MongoDB 保存 | 更新日期: 2023-09-27 18:14:23

我使用c#驱动程序批量保存MongoDB文档有困难。下面是插入带有GUID BsonID的文档的示例代码。一次救一个是有效的。如果我将文档插入到列表中并使用save命令,它会以"save只能用于具有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支持批量更新。

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

不能进行批量保存,但可以进行批量插入。

idcollection.InsertBatch(autolookuplist);