我很难使用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不支持批量更新。

最佳答案

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

idcollection.InsertBatch(autolookuplist);

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

10-10 06:38