NAME

Mandel::Relationship::BelongsTo - A document is owned by another mongodb document

DESCRIPTION

Mandel::Relationship::BelongsTo is a class used to describe the relationship between one document that belongs to another document. The connection between the documents is described in the database using DBRef.

DATABASE STRUCTURE

A "cat" that belongs to a "person" will look like this in the database:

  mongodb# db.persons.find();
  { "_id" : ObjectId("5352abb0c5483e591a010000") }

  mongodb# db.cats.find({ "person.$id": ObjectId("5352abb0c5483e591a010000") })
  {
    "_id" : ObjectId("5352abb0c5483e591a020000"),
    "person" : DBRef("persons", ObjectId("5352abb0c5483e591a010000"))
  }

SYNOPSIS

Using DSL

  package MyModel::Cat;
  use Mandel::Document;
  belongs_to owner => 'MyModel::Person';

Using object oriented interface

  MyModel::Cat
    ->model
    ->relationship(belongs_to => owner => 'MyModel::Person');

See also "relationship" in Mandel::Model.

Methods generated

  # non-blocking set
  $cat = MyModel::Cat->new->owner(\%args, sub {
           my($cat, $err, $person_obj) = @_;
           # ...
         });

  $cat = MyModel::Cat->new->owner($person_obj, sub {
           my($cat, $err, $person_obj) = @_;
           # ...
         });

  # non-blocking get
  $cat = MyModel::Cat->new->owner(sub {
           my($cat, $err, $person_obj) = @_;
           # ...
         });


  # blocking set
  $person_obj = MyModel::Cat->new->owner(\%args);
  $person_obj = MyModel::Cat->new->owner($person_obj);
  $person_obj = MyModel::Cat->new->owner($bson_oid);

  # blocking get
  $person = MyModel::Cat->new->owner;

ATTRIBUTES

Mandel::Relationship::BelongsTo inherits all attributes from Mandel::Relationship and implements the following new ones.

foreign_field

The name of the field in this class which hold the "_id" to the related doc.

METHODS

Mandel::Relationship::BelongsTo inherits all methods from Mandel::Relationship and implements the following new ones.

monkey_patch

Add methods to "document_class" in Mandel::Relationship.

SEE ALSO

Mojolicious, Mango, Mandel::Relationship

AUTHOR

Jan Henning Thorsen - jhthorsen@cpan.org