2

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

4

1 回答 1

3

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

idcollection.InsertBatch(autolookuplist);
于 2013-05-21T02:11:12.273 回答