批量插入的安全模式

iCo*_*ode 0 mongodb mongodb-.net-driver

当我在分片群集上的批量插入上使用安全模式(仅限日记)时,结果将作为C#驱动程序上的SafeModeResult列表返回(我假设它在其他驱动程序上也类似).列表中的每个结果意味着什么?

它是批处理中的每个项目还是每个分片,还是每个消息发送到服务器?

批量插入是原子的还是不是专门在分片环境中?如果没有,我怎么知道我的批次哪个部分失败了?

Rob*_*tam 5

C#驱动程序中的InsertBatch方法实际上尝试在一条消息中将所有文档发送到服务器.但是,消息长度有一个限制,大约是16MB.因此,如果您提供的InsertBatch批处理非常大,那么InsertBatch可能必须将其分解为子批处理,以便不超过最大消息长度.当发生这种情况时,您将为每个子批次获得单独的SafeModeResult,但通常您会希望返回的SafeModeResults列表仅包含一个SafeModeResult.