2
假設「doc」是我想要插入到MongoDB集合中的一些文檔,「collection」是我將文檔插入到的集合。檢查插入是否成功(MongoDB C#驅動程序)
我有類似如下:
try
{
WriteConcern wc = new WriteConcern();
wc.W = 1;
wc.Journal = true;
WriteConcernResult wcResult = collection.Insert(doc, wc);
if (!string.IsNullOrWhiteSpace(wcResult.ErrorMessage) || !wcResult.Ok)
{
return ErrorHandler(...);
}
else
{
return SuccessFunction(...);
}
}
catch (Exception e)
{
return e.Message;
}
基本上,如果插入任何原因而失敗(硬件等不能正常工作),我想處理它(通過的ErrorHandler功能或catch子句),如果成功,我想調用SuccessFunction。
我的問題:上述代碼是否足以用於錯誤檢查目的?換句話說,所有失敗的插入都會被捕獲,所以在這些情況下SuccessFunction永遠不會被調用?
這是否也適用於多文檔操作?因此,如果我插入或更新多個文檔,但其中一些插入/更新失敗,是否會引發該異常? – CynicalProgrammer 2014-11-03 17:27:44
如果指定了writeconcern,則會發生第一個錯誤,並且不會插入其他文檔將引發異常。如果你已經指定了continueOnError = true,那麼你最終會得到1個異常。 – 2014-11-03 18:10:08
謝謝!我還有一個問題:WriteConcernException是否也與FindAndModifyResult一起工作,或者只是WriteConcernResult?如果沒有,是否有FindAndModifyResult的等價物,或者我應該檢查結果是否爲空? – CynicalProgrammer 2014-11-03 19:05:07