// protected methods
protected override void SerializeRequest(BsonBinaryWriter bsonWriter, WriteRequest request)
{
var updateRequest = (UpdateRequest)request;
bsonWriter.PushMaxDocumentSize(MaxWireDocumentSize);
bsonWriter.WriteStartDocument();
bsonWriter.WriteName("q");
BsonSerializer.Serialize(bsonWriter, updateRequest.Query ?? new QueryDocument());
bsonWriter.WriteName("u");
BsonSerializer.Serialize(bsonWriter, updateRequest.Update);
if (updateRequest.IsMultiUpdate.HasValue)
{
bsonWriter.WriteBoolean("multi", updateRequest.IsMultiUpdate.Value);
}
if (updateRequest.IsUpsert.HasValue)
{
bsonWriter.WriteBoolean("upsert", updateRequest.IsUpsert.Value);
}
bsonWriter.WriteEndDocument();
bsonWriter.PopMaxDocumentSize();
}