Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取insertbatch命令插入的每个对象的返回状态_C#_Mongodb_Mongodb .net Driver - Fatal编程技术网

C# 获取insertbatch命令插入的每个对象的返回状态

C# 获取insertbatch命令插入的每个对象的返回状态,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我正在为Mongo Db使用C#驱动程序。 我想使用insertbatch命令将对象列表(IList)传递给它。 对于插入的每个对象,我想知道结果状态(是否成功插入)。我看到insertbatch为插入的每个16MB块只返回一个SafeModeResult对象。 如果我想使用insertbatch命令并获取插入的每个对象的返回状态,那么对我来说最好的方法是什么 对于使用返回多个元素的查询从集合中删除元素,同样的问题也随之而来。我想知道我删除的每个元素是否成功删除。首先,确保启用了SafeMode

我正在为Mongo Db使用C#驱动程序。 我想使用insertbatch命令将对象列表(IList)传递给它。 对于插入的每个对象,我想知道结果状态(是否成功插入)。我看到insertbatch为插入的每个16MB块只返回一个SafeModeResult对象。 如果我想使用insertbatch命令并获取插入的每个对象的返回状态,那么对我来说最好的方法是什么


对于使用返回多个元素的查询从集合中删除元素,同样的问题也随之而来。我想知道我删除的每个元素是否成功删除。

首先,确保启用了SafeMode。最简单的方法是在连接字符串中设置SafeMode on:

变量连接字符串=”mongodb://localhost/?safe=true";

如果InsertBatch完成而未引发异常,则您知道所有文档都已正确插入


如果InsertBatch引发异常,则它在批处理过程中中途失败。不幸的是,服务器在失败之前没有报告它进入批处理的程度,并且您必须查询数据库以查看是否插入了特定文档。

对于删除,类似地,如果删除完成而没有引发异常,则您知道所有匹配的文档都已成功删除

如果服务器报告错误(假设SafeMode已打开),Remove将引发异常。但是,服务器不会报告是否删除了任何文档。使用传递给Remove的相同查询调用Find将检索所有未删除的文档