我无法使用C#驱动程序批量保存MongoDB文档。这是插入带有GUID BSONID的Document的示例代码。一次保存一个工作。如果我将文档插入列表并使用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不支持批量更新。
答案 0 :(得分:3)
您无法进行批量保存,但可以进行批量插入。
idcollection.InsertBatch(autolookuplist);