Powerful visual editor for MongoDB ODM

Import, edit and export MongoDB ODM definitions just in a few clicks.

Speed up your work and avoid routine.

Entity
Bundle
Project
Skipper diagram - entitySkipper diagram - bundleSkipper diagram - project

1. Visually edit your project model.

Annotations
XML
YML
<?php
use Doctrine\ODM\MongoDB\Mapping\Annotations AS ODM;

/**
 * @ODM\Document(collection="my_documents")
 * @ODM\ChangeTrackingPolicy("DEFERRED_IMPLICIT")
 * @ODM\HasLifecycleCallbacks
 */
class EcommerceOrder
{
    /**
     * @ODM\Id(strategy="NONE")
     * @ODM\GeneratedValue(strategy="SEQUENCE")
     */
    private $id;

    /**
     * @ODM\Field(type="datetime", nullable=true)
     */
    private $ordered_at;

    /**
     * @ODM\Field(type="string", nullable=true)
     */
    private $customer_note;

    /**
     * @ODM\Field(type="string", nullable=true)
     */
    private $internal_note;

    /**
     * @ODM\ReferenceOne(targetDocument="Address")
     */
    private $DeliveryAddress;

    /**
     * @ODM\ReferenceOne(targetDocument="Address")
     */
    private $BillingAddress;
}
<?xml version="1.0"?>
<doctrine-mongo-mapping
 xmlns="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping"
 xsi="http://www.w3.org/2001/XMLSchema-instance"
 schemaLocation="http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping.xsd">
  <document
	 name="EcommerceOrder"
	 change-tracking-policy="DEFERRED_IMPLICIT">
    <field name="id" type="integer" length="4">
      <generator strategy="SEQUENCE"/>
    </field>
    <field name="ordered_at" type="datetime" nullable="true"/>
    <field name="customer_note" type="string" nullable="true" version="true"/>
    <field name="internal_note" type="string" nullable="true" version="true"/>
    <lifecycle-callbacks>
      <lifecycle-callback type="prePersist" method="prePersist"/>
    </lifecycle-callbacks>
    <reference-one field="DeliveryAddress" target-document="Address"/>
    <reference-one field="BillingAddress" target-document="Address"/>
    <options>
      <option name="charset" value="utf8"/>
      <option name="collate" value="utf8_unicode_ci"/>
    </options>
  </document>
</doctrine-mongo-mapping>
EcommerceOrder:
  type: document
  changeTrackingPolicy: DEFERRED_IMPLICIT
  fields:
    id:
      id: true
      type: integer
      length: 4
      generator:
        strategy: SEQUENCE
      options:
        unsigned: true
    ordered_at:
      type: datetime
      nullable: true
    customer_note:
      type: string
      nullable: true
      version: true
    internal_note:
      type: string
      nullable: true
      version: true
  options:
    charset: utf8
    collate: utf8_unicode_ci
  lifecycleCallbacks:
    prePersist: [prePersist]
  referenceOne:
    DeliveryAddress:
      targetDocument: Address
    BillingAddress:
      targetDocument: Address

2. Export it to complete definition files.


Why use Skipper

Simple Project import

Import of your existing MongoDB ODM projects can be done in just a few clicks thanks to sophisticated import wizard. With created visual model you will discover complete logic of a project simply and quickly.

Skipper file menuSkipper MongoDB ODM import wizardSkipper MongoDB ODM import wizard - definition filesSkipper imported MongoDB ODM project

Definitions exported by one click

Export your MongoDB ODM project repeatedly and as many times as you need. Exported definitions in standardized and ready-to-use format need no further editing.

Skipper MongoDB ODM export settingsSkipper MongoDB ODM export resultsMongoDB ODM definitions exported by Skipper

Editing in visual interface

Editing of all objects is intuitive thanks to smart wizards and dialogs. Every change of model is properly reflected in the exported definition files.

Skipper entity editor for MongoDB ODMSkipper bundle editor for MongoDB ODMSkipper Association editor for MongoDB ODM

Lower need of MongoDB ODM skills

With inbuilt value advisors, validators, assistants and definitions created via standardized templates you can stop worrying about MongoDB ODM syntax and keywords.

Skipper MongoDB ODM property editorSkipper MongoDB ODM property editor - lifecycle callbackSkipper editing MongoDB ODM fields

See all the features


Support for all MongoDB ODM features

Supported formats

Skipper supports all standard MongoDB ODM formats. Import and export XML, YML (YAML) as well as PHP annotations just in few clicks.

Skipper MongoDB ODM definitions XMLSkipper MongoDB ODM definitions YAMLSkipper MongoDB ODM definitions annotations

Entities and modules

Create, change or remove entities, fields and ORM properties just in the visual model. Differentiate logical units with many color palettes and simplify orientation in your model.

Skipper MongoDB ODM entitiesEditing MongoDB ODM fields in SkipperSkipper visual model of MongoDB ODM project

Associations

Create all types of MongoDB ODM associations with smart wizards. Use one to one, one to many and many to many associations and define owner and inverse entity or MN entity and aliases.

Skipper MongoDB ODM Many-to-Many wizardSkipper MongoDB ODM Association wizardSkipper MongoDB ODM Many-to-Many editorSkipper MongoDB ODM Association editor

Embedded

Embedded is a special feature for MongoDB projects. You can create embedded just in a few clicks, intuitive wizard will guide you through this process.

Skipper MongoDB ODM embedded wizardSkipper MongoDB ODM embedded editor

Collections

Collections are the second special feature for MongoDB projects. Collection editor allows to add and delete entities from this collection. If the collection is empty, it is collection for any entity type.

Skipper MongoDB ODM collection editor

Inheritance

Easy to understand dialog guides you through MongoDB ODM inheritance creation. Edit inheritance type, discriminators and base and derived entity, all in one place.

Skipper MongoDB ODM inheritance wizardSkipper MongoDB ODM inheritance editor

Indexes

Create indexes and manage them with the help of intuitive Entity Editor. Specify all indexes you need and which fields are indexed by them.

Skipper MongoDB ODM index editor

ORM Properties

Alter all model properties in accordance to your needs. Skipper unique Property Editor provides quick and easy way to create, edit or remove any value.

Skipper MongoDB ODM property editorSkipper MongoDB ODM property editor comboSkipper MongoDB ODM lifecycle callback

Customization

You can customize Skipper so it maximally suits your needs. Create new behaviors, configure custom properties or datatypes or connect Skipper with external tools.

Support for MVC frameworks

With Skipper you can use Symfony, Zend or other MVC framework without any limitation. Skipper exports definitions with support for any MVC framework.

See all the features

Over 5,000 companies use Skipper every day

Thomas Somoen, Try/Apt

We have good use of the tool. It simplifies our daily work, saves us time and is simple and intuitive to use.

Thomas Somoen, Try/Apt

Herman Peeren, Yepr

It is faster and gives less errors to have Skipper create the mapping code instead of writing it myself. Later in the development process I often use the Skipper diagram as a quick reference.

Herman Peeren, Yepr

Detailed List of supported MongoDB ODM properties

Skipper model properties

ObjectProperty
Projectname, storage path, description
Modulename, description, external plugin storage, export path and format
Entityname, namespace, description
Fieldname, namespace, type, size, required, unique, primary key, auto increment, default value, enum values, description
Referenceowner/inverse entity/collection, owner/inverse alias, association type (one-to-one, one-to-many), parent requirement, description
Many to Manymn entity, owner/inverse entity, owner/inverse alias, description
Embeddedowner/inverse entity/collection, owner/inverse alias, association type (one-to-one, one-to-many), description
Inheritancebase/derived entity, inheritance type, discriminator value/field, description
Collectionname, description, list of entities
Indexname, unique, indexed fields, description

MongoDB ODM model properties

ObjectProperty
Project-
Modulenamespace, file-suffix (.dcm, .orm, without-suffix), filename-format (with-namespace, entity-only)
Entityexport-file-name, change-tracking-policy (DEFERRED_IMPLICIT, DEFERRED_EXPLICIT, NOTIFY), lifecycle-callbacks(type, method), slave-okay, required-indexes, repository-class
Fieldstrategy, embedded, file, distance, reference, id-generator-options
Referenceside-owning / side-inverse (simple, strategy, repository-method, orphan-removal, limit, skip, cascade)
Many to Manyjoin-table-schema, fetch, on-delete, on-update, cascade, order-by
Embeddedstrategy
Inheritance-
Collection-

MongoDB ODM datatypes support

  • string

  • int

  • boolean

  • float

  • date

  • file

  • hash

  • increment

  • key

  • object_id

  • timestamp

  • raw_type

  • bin_data_custom

  • bin_data_func

  • bin_data_md5

  • bin_data

  • bin_data_uuid

MongoDB ODM inheritance support

  • SINGLE_TABLE

  • JOINED

  • MAPPED_SUPERCLASS

MongoDB ODM associations support

  • MongoDB ODM reference One to one (one-to-one)

  • MongoDB ODM reference One to many (one-to-many)

  • MongoDB ODM reference Many to one (many-to-one)

  • MongoDB ODM reference Many to many (many-to-many)

  • MongoDB ODM embedded One to one (one-to-one)

  • MongoDB ODM embedded One to many (one-to-many)

MongoDB ODM model import / export formats

  • XML definitions

  • YAML (YML) definitions

  • PHP Annotations