References
References
Mongotoy simplifies the handling of references by automatically generating them when you use a mongotoy.Document 
base type as a field in another document. This means that you don't need to manually manage references between documents. 
Additionally, Mongotoy provides flexibility in configuring reference behavior through the mongotoy.reference() 
function. With this function, you can customize how references are handled.
Customization Parameters
The mongotoy.reference() function accepts the following parameters:
- ref_field: Name of the referenced field. Defaults to id
- key_name: Key name for the reference. Defaults to None.
Note
If key_name isn't specified, Mongotoy automatically generates it by concatenating the name of the field that holds
the reference value with the name of the referenced field. In the example below, if key_name is not specified
explicitly, it will default to parent_code.
Here's an example that showcases the customization of references in Mongotoy documents.
| 1 2 3 4 5 6 7 8 9 10 |  | 
The parent field in the Person document class serves as a reference to another Person document, 
denoting the individual's parent. Through the mongotoy.reference() function, the reference behavior is established
based on the code field of the referenced document. In the database, the reference key is labeled as p_code. 
This setup ensures that when a Person document is saved, the code value of the referenced Person document 
stored in the parent field is also stored in the current document under the p_code key.
Attention
When defining references with forwarded types, 
using mongotoy.reference() with a type that isn't derived from mongotoy.Document, or omitting mongotoy.reference() 
when using amongotoy.Document derived type, will result in a mongotoy.errors.DocumentValidation error during
document instantiation.