code: def U(Document, __raw__=None, **update):
  	
  	
  	ops = Update(__raw__)
  	args = _process_arguments(Document, UPDATE_ALIASES, {}, update, UPDATE_PASSTHROUGH)
  	
  	for operation, _, field, value in args:
  		if not operation:
  			operation = DEFAULT_UPDATE
  		
  		if isinstance(operation, tuple):
  			operation, cast = ('$' + operation[0]), operation[1]
  			if cast in UPDATE_MAGIC:
  				value = cast(value, field)
  			else:
  				value = cast(value)
  			
  			if operation in ops and ~field in ops[operation] and isinstance(value, Mapping):
  				ops[operation][~field].update(value)
  				continue
  		
  		else:
  			operation = '$' + operation
  		
  		ops &= Update({operation: {~field: value}})
  	
  	return ops
docs: Generate a MongoDB update document through paramater interpolation.
  	
  	Arguments passed by name have their name interpreted as an optional operation prefix (defaulting to `set`, e.g.
  	`push`), a double-underscore separated field reference (e.g. `foo`, or `foo__bar`, or `foo__S__bar`, or
  	`foo__27__bar`)
  	
  	Because this utility is likely going to be used frequently it has been given a single-character name.