Mongomapper defines a model by its class. All instances of this class share the model's keys. If you want to create a model on-the-fly, you will probably need to dynamically create a class, and add the keys to it:
def build(attrs={})
c = Class.new(self.class)
doc = c.new
apply_scope(doc)
doc.set_up_keys!
doc.attributes = attrs
doc
end